diff options
| author | Carolyn Wyborny <[email protected]> | 2013-04-30 00:21:32 +0000 |
|---|---|---|
| committer | Jeff Kirsher <[email protected]> | 2013-05-21 09:55:38 +0000 |
| commit | 41f149a285da21529bc9a0bad323df53b2f17b16 (patch) | |
| tree | 978fbc9f2c583cccff763535b0ec41419309758c /drivers/net/ethernet/intel/igb/igb_main.c | |
| parent | igb: Fix set_ethtool function to call update nvm for entire image (diff) | |
| download | kernel-41f149a285da21529bc9a0bad323df53b2f17b16.tar.gz kernel-41f149a285da21529bc9a0bad323df53b2f17b16.zip | |
igb: Fix possible panic caused by Rx traffic arrival while interface is down
This patch reorders disabling napi and irqs during igb_down.
This is done to avoid possible panic's found in other Intel drivers
when Rx traffic arrives while interface is going down.
Signed-off-by: Carolyn Wyborny <[email protected]>
Tested-by: Aaron Brown <[email protected]>
Signed-off-by: Jeff Kirsher <[email protected]>
Diffstat (limited to 'drivers/net/ethernet/intel/igb/igb_main.c')
| -rw-r--r-- | drivers/net/ethernet/intel/igb/igb_main.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c index 2c8f7e04b02b..6a0c1b66ce54 100644 --- a/drivers/net/ethernet/intel/igb/igb_main.c +++ b/drivers/net/ethernet/intel/igb/igb_main.c @@ -1667,10 +1667,13 @@ void igb_down(struct igb_adapter *adapter) wrfl(); msleep(10); - for (i = 0; i < adapter->num_q_vectors; i++) + igb_irq_disable(adapter); + + for (i = 0; i < adapter->num_q_vectors; i++) { + napi_synchronize(&(adapter->q_vector[i]->napi)); napi_disable(&(adapter->q_vector[i]->napi)); + } - igb_irq_disable(adapter); del_timer_sync(&adapter->watchdog_timer); del_timer_sync(&adapter->phy_info_timer); |
