If a reset occurs when the netdev is closed, the reset task will hang in
napi_disable, causing deadlocks and general grumpiness.
Check to make sure the device is actually running before stopping
everything. This allows the reset task to complete and have a real good
time.
Change-ID: Iaaea84acbcb9b3810c216b14c3326e4287b75b58
Signed-off-by: Mitch Williams <mitch.a.williams@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
adapter->flags &= ~I40EVF_FLAG_RESET_PENDING;
i40evf_irq_disable(adapter);
- i40evf_napi_disable_all(adapter);
-
- netif_tx_disable(netdev);
- netif_tx_stop_all_queues(netdev);
+ if (netif_running(adapter->netdev)) {
+ i40evf_napi_disable_all(adapter);
+ netif_tx_disable(netdev);
+ netif_tx_stop_all_queues(netdev);
+ netif_carrier_off(netdev);
+ }
- netif_carrier_off(netdev);
adapter->state = __I40EVF_RESETTING;
/* kill and reinit the admin queue */