summaryrefslogtreecommitdiffstats
path: root/drivers/net/ixgb
diff options
context:
space:
mode:
authorJesse Brandeburg2008-07-09 00:51:47 +0200
committerJeff Garzik2008-07-11 07:20:28 +0200
commit1257969724e7d5f878ac05067388ac5c012eb29b (patch)
treeabbf73f41400e17e80c168db97337de399ae4c65 /drivers/net/ixgb
parentixgb: fix race on rx_buffer_len in mtu change (diff)
downloadkernel-qcow2-linux-1257969724e7d5f878ac05067388ac5c012eb29b.tar.gz
kernel-qcow2-linux-1257969724e7d5f878ac05067388ac5c012eb29b.tar.xz
kernel-qcow2-linux-1257969724e7d5f878ac05067388ac5c012eb29b.zip
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>
Diffstat (limited to 'drivers/net/ixgb')
-rw-r--r--drivers/net/ixgb/ixgb_main.c2
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)
struct net_device *netdev = pci_get_drvdata(pdev);
struct ixgb_adapter *adapter = netdev_priv(netdev);
+ flush_scheduled_work();
+
unregister_netdev(netdev);
iounmap(adapter->hw.hw_addr);