aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTodd Fujinaka <todd.fujinaka@intel.com>2015-03-20 20:41:54 -0400
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>2015-03-20 20:45:12 -0400
commit784401bfc0b22b5521492047884e8d834de4dfab (patch)
tree361d74098296cab17a2727d79e39ed61dd43d68d
parentf28ea083a3d21abec434f429f1375b3639b234c4 (diff)
igbvf: 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>
-rw-r--r--drivers/net/ethernet/intel/igbvf/netdev.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/igbvf/netdev.c b/drivers/net/ethernet/intel/igbvf/netdev.c
index c17ea4b8f84d..95af14e139d7 100644
--- a/drivers/net/ethernet/intel/igbvf/netdev.c
+++ b/drivers/net/ethernet/intel/igbvf/netdev.c
@@ -1519,6 +1519,7 @@ void igbvf_down(struct igbvf_adapter *adapter)
1519 rxdctl = er32(RXDCTL(0)); 1519 rxdctl = er32(RXDCTL(0));
1520 ew32(RXDCTL(0), rxdctl & ~E1000_RXDCTL_QUEUE_ENABLE); 1520 ew32(RXDCTL(0), rxdctl & ~E1000_RXDCTL_QUEUE_ENABLE);
1521 1521
1522 netif_carrier_off(netdev);
1522 netif_stop_queue(netdev); 1523 netif_stop_queue(netdev);
1523 1524
1524 /* disable transmits in the hardware */ 1525 /* disable transmits in the hardware */
@@ -1535,8 +1536,6 @@ void igbvf_down(struct igbvf_adapter *adapter)
1535 1536
1536 del_timer_sync(&adapter->watchdog_timer); 1537 del_timer_sync(&adapter->watchdog_timer);
1537 1538
1538 netif_carrier_off(netdev);
1539
1540 /* record the stats before reset*/ 1539 /* record the stats before reset*/
1541 igbvf_update_stats(adapter); 1540 igbvf_update_stats(adapter);
1542 1541