ibmvnic: Wait until reset is complete to set carrier on
authorThomas Falcon <tlfalcon@linux.vnet.ibm.com>
Tue, 13 Feb 2018 21:32:50 +0000 (15:32 -0600)
committerDavid S. Miller <davem@davemloft.net>
Wed, 14 Feb 2018 19:31:34 +0000 (14:31 -0500)
Pushes back setting the carrier on until the end of the reset
code. This resolves a bug where a watchdog timer was detecting
that a TX queue had stalled before the adapter reset was complete.

Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/ibm/ibmvnic.c

index 2744726..1a2d8d6 100644 (file)
@@ -1670,8 +1670,6 @@ static int do_reset(struct ibmvnic_adapter *adapter,
                return 0;
        }
 
-       netif_carrier_on(netdev);
-
        /* kick napi */
        for (i = 0; i < adapter->req_rx_queues; i++)
                napi_schedule(&adapter->napi[i]);
@@ -1679,6 +1677,8 @@ static int do_reset(struct ibmvnic_adapter *adapter,
        if (adapter->reset_reason != VNIC_RESET_FAILOVER)
                netdev_notify_peers(netdev);
 
+       netif_carrier_on(netdev);
+
        return 0;
 }