diff options
author | Tejun Heo <tj@kernel.org> | 2010-12-12 16:45:14 +0100 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2010-12-12 16:45:14 +0100 |
commit | 760141a53e5d72d4cc1d8c6e2a0232a24bedb36b (patch) | |
tree | 662158c0c23ee16e2bc16d9ba53eeadc6d9fa17e /drivers/net/igb/igb_main.c | |
parent | 9beb4896cec71e40738a7752072174fbf0d5b7b4 (diff) | |
download | op-kernel-dev-760141a53e5d72d4cc1d8c6e2a0232a24bedb36b.zip op-kernel-dev-760141a53e5d72d4cc1d8c6e2a0232a24bedb36b.tar.gz |
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/igb/igb_main.c')
-rw-r--r-- | drivers/net/igb/igb_main.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/drivers/net/igb/igb_main.c b/drivers/net/igb/igb_main.c index 041f8e6..62348fc 100644 --- a/drivers/net/igb/igb_main.c +++ b/drivers/net/igb/igb_main.c @@ -2050,13 +2050,16 @@ static void __devexit igb_remove(struct pci_dev *pdev) struct igb_adapter *adapter = netdev_priv(netdev); struct e1000_hw *hw = &adapter->hw; - /* flush_scheduled work may reschedule our watchdog task, so - * explicitly disable watchdog tasks from being rescheduled */ + /* + * The watchdog timer may be rescheduled, so explicitly + * disable watchdog from being rescheduled. + */ set_bit(__IGB_DOWN, &adapter->state); del_timer_sync(&adapter->watchdog_timer); del_timer_sync(&adapter->phy_info_timer); - flush_scheduled_work(); + cancel_work_sync(&adapter->reset_task); + cancel_work_sync(&adapter->watchdog_task); #ifdef CONFIG_IGB_DCA if (adapter->flags & IGB_FLAG_DCA_ENABLED) { |