]> Pileus Git - ~andy/linux/commitdiff
qlcnic: Fix loopback test failure
authorShahed Shaikh <shahed.shaikh@qlogic.com>
Tue, 28 Jan 2014 16:55:30 +0000 (11:55 -0500)
committerDavid S. Miller <davem@davemloft.net>
Tue, 28 Jan 2014 19:59:30 +0000 (11:59 -0800)
Driver was returning from link event handler without
setting linkup variable

Signed-off-by: Shahed Shaikh <shahed.shaikh@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/qlogic/qlcnic/qlcnic_io.c

index 19e1a93bac67439e51d96c275abbc03e28a8f9df..54ebf300332a353246066e5cf62f1d097355e1e5 100644 (file)
@@ -683,12 +683,17 @@ void qlcnic_advert_link_change(struct qlcnic_adapter *adapter, int linkup)
                adapter->ahw->linkup = 0;
                netif_carrier_off(netdev);
        } else if (!adapter->ahw->linkup && linkup) {
-               /* Do not advertise Link up if the port is in loopback mode */
-               if (qlcnic_83xx_check(adapter) && adapter->ahw->lb_mode)
+               adapter->ahw->linkup = 1;
+
+               /* Do not advertise Link up to the stack if device
+                * is in loopback mode
+                */
+               if (qlcnic_83xx_check(adapter) && adapter->ahw->lb_mode) {
+                       netdev_info(netdev, "NIC Link is up for loopback test\n");
                        return;
+               }
 
                netdev_info(netdev, "NIC Link is up\n");
-               adapter->ahw->linkup = 1;
                netif_carrier_on(netdev);
        }
 }