mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-25 20:14:25 +08:00
e1000e: driver trying to free already-free irq
During systemd reboot sequence network driver interface is shutdown by e1000_close. The PCI driver interface is shut by e1000_shutdown. The e1000_shutdown checks for netif_running status, if still up it brings down driver. But it disables msi outside of this if statement, regardless of netif status. All this is OK when e1000_close happens after shutdown. However, by default, everything in systemd is done in parallel. This creates a conditions where e1000_shutdown is called after e1000_close, therefore hitting BUG_ON assert in free_msi_irqs. CC: xe-kernel@external.cisco.com Signed-off-by: khalidm <khalidm@cisco.com> Signed-off-by: David Singleton <davsingl@cisco.com> Tested-by: Aaron Brown <aaron.f.brown@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
030ec9e682
commit
7e54d9d063
@ -6276,8 +6276,8 @@ static int e1000e_pm_freeze(struct device *dev)
|
||||
/* Quiesce the device without resetting the hardware */
|
||||
e1000e_down(adapter, false);
|
||||
e1000_free_irq(adapter);
|
||||
e1000e_reset_interrupt_capability(adapter);
|
||||
}
|
||||
e1000e_reset_interrupt_capability(adapter);
|
||||
|
||||
/* Allow time for pending master requests to run */
|
||||
e1000e_disable_pcie_master(&adapter->hw);
|
||||
|
Loading…
Reference in New Issue
Block a user