diff options
author | Jesse Brandeburg <jesse.brandeburg@intel.com> | 2008-07-08 18:51:47 -0400 |
---|---|---|
committer | Jeff Garzik <jgarzik@redhat.com> | 2008-07-11 01:20:28 -0400 |
commit | 1257969724e7d5f878ac05067388ac5c012eb29b (patch) | |
tree | abbf73f41400e17e80c168db97337de399ae4c65 | |
parent | b5ca88eb335580dc48ef5ebb3b86719bdb5a4113 (diff) |
ixgb: fix unload race with timers
ixgb needs to call flush scheduled work to flush any timers before
unregistering the netdev.
Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: Jeff Garzik <jgarzik@redhat.com>
-rw-r--r-- | drivers/net/ixgb/ixgb_main.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ixgb/ixgb_main.c b/drivers/net/ixgb/ixgb_main.c index c3234c451043..79082eb577c6 100644 --- a/drivers/net/ixgb/ixgb_main.c +++ b/drivers/net/ixgb/ixgb_main.c | |||
@@ -528,6 +528,8 @@ ixgb_remove(struct pci_dev *pdev) | |||
528 | struct net_device *netdev = pci_get_drvdata(pdev); | 528 | struct net_device *netdev = pci_get_drvdata(pdev); |
529 | struct ixgb_adapter *adapter = netdev_priv(netdev); | 529 | struct ixgb_adapter *adapter = netdev_priv(netdev); |
530 | 530 | ||
531 | flush_scheduled_work(); | ||
532 | |||
531 | unregister_netdev(netdev); | 533 | unregister_netdev(netdev); |
532 | 534 | ||
533 | iounmap(adapter->hw.hw_addr); | 535 | iounmap(adapter->hw.hw_addr); |