aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/tg3.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2010-12-12 10:45:14 -0500
committerTejun Heo <tj@kernel.org>2010-12-12 10:45:14 -0500
commit23f333a2bfafba80339315b724808982a9de57d9 (patch)
tree55819e6a8eeb9c2d34b42c77e7e38f7f6571baf9 /drivers/net/tg3.c
parent6e07ebd84eef00be9e169a6d15a0bc20b06578fa (diff)
drivers/net: don't use flush_scheduled_work()
flush_scheduled_work() is on its way out. This patch contains simple conversions to replace flush_scheduled_work() usage with direct cancels and flushes. Directly cancel the used works on driver detach and flush them in other cases. The conversions are mostly straight forward and the only dangers are, * Forgetting to cancel/flush one or more used works. * Cancelling when a work should be flushed (ie. the work must be executed once scheduled whether the driver is detaching or not). I've gone over the changes multiple times but it would be much appreciated if you can review with the above points in mind. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: "David S. Miller" <davem@davemloft.net> Cc: Jay Cliburn <jcliburn@gmail.com> Cc: Michael Chan <mchan@broadcom.com> Cc: Divy Le Ray <divy@chelsio.com> Cc: e1000-devel@lists.sourceforge.net Cc: Vasanthy Kolluri <vkolluri@cisco.com> Cc: Samuel Ortiz <samuel@sortiz.org> Cc: Lennert Buytenhek <buytenh@wantstofly.org> Cc: Andrew Gallatin <gallatin@myri.com> Cc: Francois Romieu <romieu@fr.zoreil.com> Cc: Ramkrishna Vepa <ramkrishna.vepa@exar.com> Cc: Matt Carlson <mcarlson@broadcom.com> Cc: David Brownell <dbrownell@users.sourceforge.net> Cc: Shreyas Bhatewara <sbhatewara@vmware.com> Cc: netdev@vger.kernel.org
Diffstat (limited to 'drivers/net/tg3.c')
-rw-r--r--drivers/net/tg3.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/tg3.c b/drivers/net/tg3.c
index 5faa87d86c66..57e19fb1324f 100644
--- a/drivers/net/tg3.c
+++ b/drivers/net/tg3.c
@@ -15034,7 +15034,7 @@ static void __devexit tg3_remove_one(struct pci_dev *pdev)
15034 if (tp->fw) 15034 if (tp->fw)
15035 release_firmware(tp->fw); 15035 release_firmware(tp->fw);
15036 15036
15037 flush_scheduled_work(); 15037 cancel_work_sync(&tp->reset_task);
15038 15038
15039 if (tp->tg3_flags3 & TG3_FLG3_USE_PHYLIB) { 15039 if (tp->tg3_flags3 & TG3_FLG3_USE_PHYLIB) {
15040 tg3_phy_fini(tp); 15040 tg3_phy_fini(tp);
@@ -15073,7 +15073,7 @@ static int tg3_suspend(struct pci_dev *pdev, pm_message_t state)
15073 if (!netif_running(dev)) 15073 if (!netif_running(dev))
15074 return 0; 15074 return 0;
15075 15075
15076 flush_scheduled_work(); 15076 flush_work_sync(&tp->reset_task);
15077 tg3_phy_stop(tp); 15077 tg3_phy_stop(tp);
15078 tg3_netif_stop(tp); 15078 tg3_netif_stop(tp);
15079 15079