diff --git a/drivers/net/ethernet/intel/i40evf/i40evf_main.c b/drivers/net/ethernet/intel/i40evf/i40evf_main.c index f44911df286acac2c6beb797b5e02a72e1895547..32d0a99ad2a9989e889863b819824cb07408b27c 100644 --- a/drivers/net/ethernet/intel/i40evf/i40evf_main.c +++ b/drivers/net/ethernet/intel/i40evf/i40evf_main.c @@ -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); - 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 */