Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[linux-3.10.git] / drivers / net / ethernet / intel / e1000e / 82571.c
index 1f063dc..0b3bade 100644 (file)
@@ -1680,16 +1680,18 @@ static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw)
                        e_dbg("ANYSTATE  -> DOWN\n");
                } else {
                        /*
-                        * Check several times, if Sync and Config
-                        * both are consistently 1 then simply ignore
-                        * the Invalid bit and restart Autoneg
+                        * Check several times, if SYNCH bit and CONFIG
+                        * bit both are consistently 1 then simply ignore
+                        * the IV bit and restart Autoneg
                         */
                        for (i = 0; i < AN_RETRY_COUNT; i++) {
                                udelay(10);
                                rxcw = er32(RXCW);
-                               if ((rxcw & E1000_RXCW_IV) &&
-                                   !((rxcw & E1000_RXCW_SYNCH) &&
-                                     (rxcw & E1000_RXCW_C))) {
+                               if ((rxcw & E1000_RXCW_SYNCH) &&
+                                   (rxcw & E1000_RXCW_C))
+                                       continue;
+
+                               if (rxcw & E1000_RXCW_IV) {
                                        mac->serdes_has_link = false;
                                        mac->serdes_link_state =
                                            e1000_serdes_link_down;