aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/enic
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/enic
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/enic')
-rw-r--r--drivers/net/enic/enic_main.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
index 9befd54ce6e1..77d91381a74d 100644
--- a/drivers/net/enic/enic_main.c
+++ b/drivers/net/enic/enic_main.c
@@ -2834,7 +2834,7 @@ static void __devexit enic_remove(struct pci_dev *pdev)
2834 if (netdev) { 2834 if (netdev) {
2835 struct enic *enic = netdev_priv(netdev); 2835 struct enic *enic = netdev_priv(netdev);
2836 2836
2837 flush_scheduled_work(); 2837 cancel_work_sync(&enic->reset);
2838 unregister_netdev(netdev); 2838 unregister_netdev(netdev);
2839 enic_dev_deinit(enic); 2839 enic_dev_deinit(enic);
2840 vnic_dev_close(enic->vdev); 2840 vnic_dev_close(enic->vdev);