mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
i40vf: don't stop me now
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>
This commit is contained in:
parent
1efc80eeee
commit
3c8e0b989a
1 changed files with 6 additions and 5 deletions
|
@ -1578,13 +1578,14 @@ static void i40evf_reset_task(struct work_struct *work)
|
|||
adapter->flags &= ~I40EVF_FLAG_RESET_PENDING;
|
||||
|
||||
i40evf_irq_disable(adapter);
|
||||
i40evf_napi_disable_all(adapter);
|
||||
|
||||
netif_tx_disable(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_tx_stop_all_queues(netdev);
|
||||
|
||||
netif_carrier_off(netdev);
|
||||
adapter->state = __I40EVF_RESETTING;
|
||||
|
||||
/* kill and reinit the admin queue */
|
||||
|
|
Loading…
Reference in a new issue