Skip to content

Commit

Permalink
igb: use netif_carrier_off earlier when bringing if down
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
Todd Fujinaka authored and Jeff Kirsher committed Mar 21, 2015
1 parent 152c0a9 commit f28ea08
Showing 1 changed file with 1 addition and 3 deletions.
4 changes: 1 addition & 3 deletions drivers/net/ethernet/intel/igb/igb_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand All @@ -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);
Expand Down

0 comments on commit f28ea08

Please sign in to comment.