sky2: avoid duplicate link up on Optima chip
authorstephen hemminger <shemminger@vyatta.com>
Mon, 29 Mar 2010 07:36:20 +0000 (07:36 +0000)
committerDavid S. Miller <davem@davemloft.net>
Wed, 31 Mar 2010 02:43:48 +0000 (19:43 -0700)
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 eec36995af222b8afe497b70b8a27e72e7554cea..f1c0ec308bfe6e35efe0ad121d6169b0938d4d91 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;
        }