sky2: avoid duplicate link up on Optima chip
stephen hemminger [Mon, 29 Mar 2010 07:36:20 +0000 (07:36 +0000)]
The Optima version has feature to detect link quickly without PHY interrupt,
but it causes duplicate link up events.

Signed-off-by: Stephen Hemminger <shemminger@vyatta.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

drivers/net/sky2.c

index eec3699..f1c0ec3 100644 (file)
@@ -2146,7 +2146,8 @@ static void sky2_phy_intr(struct sky2_hw *hw, unsigned port)
                   istatus, phystat);
 
        if (istatus & PHY_M_IS_AN_COMPL) {
-               if (sky2_autoneg_done(sky2, phystat) == 0)
+               if (sky2_autoneg_done(sky2, phystat) == 0 &&
+                   !netif_carrier_ok(dev))
                        sky2_link_up(sky2);
                goto out;
        }