diff options
-rw-r--r-- | drivers/net/ethernet/intel/e1000e/netdev.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c index da7f2fad5ba4..a27e3bcc3249 100644 --- a/drivers/net/ethernet/intel/e1000e/netdev.c +++ b/drivers/net/ethernet/intel/e1000e/netdev.c | |||
@@ -4016,6 +4016,8 @@ void e1000e_down(struct e1000_adapter *adapter) | |||
4016 | 4016 | ||
4017 | e1000_irq_disable(adapter); | 4017 | e1000_irq_disable(adapter); |
4018 | 4018 | ||
4019 | napi_synchronize(&adapter->napi); | ||
4020 | |||
4019 | del_timer_sync(&adapter->watchdog_timer); | 4021 | del_timer_sync(&adapter->watchdog_timer); |
4020 | del_timer_sync(&adapter->phy_info_timer); | 4022 | del_timer_sync(&adapter->phy_info_timer); |
4021 | 4023 | ||
@@ -4372,12 +4374,13 @@ static int e1000_close(struct net_device *netdev) | |||
4372 | 4374 | ||
4373 | pm_runtime_get_sync(&pdev->dev); | 4375 | pm_runtime_get_sync(&pdev->dev); |
4374 | 4376 | ||
4375 | napi_disable(&adapter->napi); | ||
4376 | |||
4377 | if (!test_bit(__E1000_DOWN, &adapter->state)) { | 4377 | if (!test_bit(__E1000_DOWN, &adapter->state)) { |
4378 | e1000e_down(adapter); | 4378 | e1000e_down(adapter); |
4379 | e1000_free_irq(adapter); | 4379 | e1000_free_irq(adapter); |
4380 | } | 4380 | } |
4381 | |||
4382 | napi_disable(&adapter->napi); | ||
4383 | |||
4381 | e1000_power_down_phy(adapter); | 4384 | e1000_power_down_phy(adapter); |
4382 | 4385 | ||
4383 | e1000e_free_tx_resources(adapter->tx_ring); | 4386 | e1000e_free_tx_resources(adapter->tx_ring); |