diff options
author | Todd Fujinaka | 2016-11-15 17:54:26 +0100 |
---|---|---|
committer | Jeff Kirsher | 2017-01-06 11:18:51 +0100 |
commit | 9474933caf21a4cb5147223dca1551f527aaac36 (patch) | |
tree | eb39db9621cd75d30f033e25bc23d38465df6997 /drivers/net/ethernet/intel/igb/e1000_phy.c | |
parent | igb: re-assign hw address pointer on reset after PCI error (diff) | |
download | kernel-qcow2-linux-9474933caf21a4cb5147223dca1551f527aaac36.tar.gz kernel-qcow2-linux-9474933caf21a4cb5147223dca1551f527aaac36.tar.xz kernel-qcow2-linux-9474933caf21a4cb5147223dca1551f527aaac36.zip |
igb: close/suspend race in netif_device_detach
Similar to ixgbe, when an interface is part of a namespace it is
possible that igb_close() may be called while __igb_shutdown() is
running which ends up in a double free WARN and/or a BUG in
free_msi_irqs().
Extend the rtnl_lock() to protect the call to netif_device_detach() and
igb_clear_interrupt_scheme() in __igb_shutdown() and check for
netif_device_present() to avoid calling igb_clear_interrupt_scheme() a
second time in igb_close().
Also extend the rtnl lock in igb_resume() to netif_device_attach().
Signed-off-by: Todd Fujinaka <todd.fujinaka@intel.com>
Acked-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Aaron Brown <aaron.f.brown@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Diffstat (limited to 'drivers/net/ethernet/intel/igb/e1000_phy.c')
0 files changed, 0 insertions, 0 deletions