diff options
-rw-r--r-- | drivers/net/ixgbe/ixgbe_main.c | 15 |
1 files changed, 7 insertions, 8 deletions
diff --git a/drivers/net/ixgbe/ixgbe_main.c b/drivers/net/ixgbe/ixgbe_main.c index fe7e260e0157..5258b3d6405b 100644 --- a/drivers/net/ixgbe/ixgbe_main.c +++ b/drivers/net/ixgbe/ixgbe_main.c | |||
@@ -3291,22 +3291,23 @@ void ixgbe_down(struct ixgbe_adapter *adapter) | |||
3291 | rxctrl = IXGBE_READ_REG(hw, IXGBE_RXCTRL); | 3291 | rxctrl = IXGBE_READ_REG(hw, IXGBE_RXCTRL); |
3292 | IXGBE_WRITE_REG(hw, IXGBE_RXCTRL, rxctrl & ~IXGBE_RXCTRL_RXEN); | 3292 | IXGBE_WRITE_REG(hw, IXGBE_RXCTRL, rxctrl & ~IXGBE_RXCTRL_RXEN); |
3293 | 3293 | ||
3294 | netif_tx_disable(netdev); | ||
3295 | |||
3296 | IXGBE_WRITE_FLUSH(hw); | 3294 | IXGBE_WRITE_FLUSH(hw); |
3297 | msleep(10); | 3295 | msleep(10); |
3298 | 3296 | ||
3299 | netif_tx_stop_all_queues(netdev); | 3297 | netif_tx_stop_all_queues(netdev); |
3300 | 3298 | ||
3301 | ixgbe_irq_disable(adapter); | ||
3302 | |||
3303 | ixgbe_napi_disable_all(adapter); | ||
3304 | |||
3305 | clear_bit(__IXGBE_SFP_MODULE_NOT_FOUND, &adapter->state); | 3299 | clear_bit(__IXGBE_SFP_MODULE_NOT_FOUND, &adapter->state); |
3306 | del_timer_sync(&adapter->sfp_timer); | 3300 | del_timer_sync(&adapter->sfp_timer); |
3307 | del_timer_sync(&adapter->watchdog_timer); | 3301 | del_timer_sync(&adapter->watchdog_timer); |
3308 | cancel_work_sync(&adapter->watchdog_task); | 3302 | cancel_work_sync(&adapter->watchdog_task); |
3309 | 3303 | ||
3304 | netif_carrier_off(netdev); | ||
3305 | netif_tx_disable(netdev); | ||
3306 | |||
3307 | ixgbe_irq_disable(adapter); | ||
3308 | |||
3309 | ixgbe_napi_disable_all(adapter); | ||
3310 | |||
3310 | if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE || | 3311 | if (adapter->flags & IXGBE_FLAG_FDIR_HASH_CAPABLE || |
3311 | adapter->flags & IXGBE_FLAG_FDIR_PERFECT_CAPABLE) | 3312 | adapter->flags & IXGBE_FLAG_FDIR_PERFECT_CAPABLE) |
3312 | cancel_work_sync(&adapter->fdir_reinit_task); | 3313 | cancel_work_sync(&adapter->fdir_reinit_task); |
@@ -3324,8 +3325,6 @@ void ixgbe_down(struct ixgbe_adapter *adapter) | |||
3324 | (IXGBE_READ_REG(hw, IXGBE_DMATXCTL) & | 3325 | (IXGBE_READ_REG(hw, IXGBE_DMATXCTL) & |
3325 | ~IXGBE_DMATXCTL_TE)); | 3326 | ~IXGBE_DMATXCTL_TE)); |
3326 | 3327 | ||
3327 | netif_carrier_off(netdev); | ||
3328 | |||
3329 | /* clear n-tuple filters that are cached */ | 3328 | /* clear n-tuple filters that are cached */ |
3330 | ethtool_ntuple_flush(netdev); | 3329 | ethtool_ntuple_flush(netdev); |
3331 | 3330 | ||