diff options
author | Tejun Heo <tj@kernel.org> | 2010-12-12 10:45:14 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-12-12 10:45:14 -0500 |
commit | 760141a53e5d72d4cc1d8c6e2a0232a24bedb36b (patch) | |
tree | 662158c0c23ee16e2bc16d9ba53eeadc6d9fa17e /drivers/net/igbvf | |
parent | 9beb4896cec71e40738a7752072174fbf0d5b7b4 (diff) |
igb[v],ixgbe: don't use flush_scheduled_work()
All three drivers use flush_scheduled_work() similarly during driver
detach. Replace it with explicit cancels.
Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: e1000-devel@lists.sourceforge.net
Cc: netdev@vger.kernel.org
Diffstat (limited to 'drivers/net/igbvf')
-rw-r--r-- | drivers/net/igbvf/netdev.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/net/igbvf/netdev.c b/drivers/net/igbvf/netdev.c index 8dbde2397c10..4fb023bce785 100644 --- a/drivers/net/igbvf/netdev.c +++ b/drivers/net/igbvf/netdev.c | |||
@@ -2825,13 +2825,14 @@ static void __devexit igbvf_remove(struct pci_dev *pdev) | |||
2825 | struct e1000_hw *hw = &adapter->hw; | 2825 | struct e1000_hw *hw = &adapter->hw; |
2826 | 2826 | ||
2827 | /* | 2827 | /* |
2828 | * flush_scheduled work may reschedule our watchdog task, so | 2828 | * The watchdog timer may be rescheduled, so explicitly |
2829 | * explicitly disable watchdog tasks from being rescheduled | 2829 | * disable it from being rescheduled. |
2830 | */ | 2830 | */ |
2831 | set_bit(__IGBVF_DOWN, &adapter->state); | 2831 | set_bit(__IGBVF_DOWN, &adapter->state); |
2832 | del_timer_sync(&adapter->watchdog_timer); | 2832 | del_timer_sync(&adapter->watchdog_timer); |
2833 | 2833 | ||
2834 | flush_scheduled_work(); | 2834 | cancel_work_sync(&adapter->reset_task); |
2835 | cancel_work_sync(&adapter->watchdog_task); | ||
2835 | 2836 | ||
2836 | unregister_netdev(netdev); | 2837 | unregister_netdev(netdev); |
2837 | 2838 | ||