summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorTodd Fujinaka <todd.fujinaka@intel.com>2015-03-21 01:41:53 +0100
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2015-03-21 01:45:12 +0100
commitf28ea083a3d21abec434f429f1375b3639b234c4 (patch)
tree546f1ae79709f4f2eaf9edfaa88189d4a8978c2e /drivers
parente1000e: NVM write protect access removed from SPT HW (diff)
downloadlinux-f28ea083a3d21abec434f429f1375b3639b234c4.tar.xz
linux-f28ea083a3d21abec434f429f1375b3639b234c4.zip
igb: use netif_carrier_off earlier when bringing if down
Use netif_carrier_off() first, since that will prevent the stack from queuing more packets to this IF. This operation is fast, and should behave much nicer when trying to bring down an interface under load. Reported-by: Eliezer Tamir <eliezer.tamir@linux.intel.com> Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/ethernet/intel/igb/igb_main.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
index f366b3b96d03..0e07545ccc97 100644
--- a/drivers/net/ethernet/intel/igb/igb_main.c
+++ b/drivers/net/ethernet/intel/igb/igb_main.c
@@ -1776,6 +1776,7 @@ void igb_down(struct igb_adapter *adapter)
wr32(E1000_RCTL, rctl & ~E1000_RCTL_EN);
/* flush and sleep below */
+ netif_carrier_off(netdev);
netif_tx_stop_all_queues(netdev);
/* disable transmits in the hardware */
@@ -1797,12 +1798,9 @@ void igb_down(struct igb_adapter *adapter)
}
}
-
del_timer_sync(&adapter->watchdog_timer);
del_timer_sync(&adapter->phy_info_timer);
- netif_carrier_off(netdev);
-
/* record the stats before reset*/
spin_lock(&adapter->stats64_lock);
igb_update_stats(adapter, &adapter->stats64);