aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/cxgb3/cxgb3_main.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/cxgb3/cxgb3_main.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/cxgb3/cxgb3_main.c')
-rw-r--r--drivers/net/cxgb3/cxgb3_main.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/cxgb3/cxgb3_main.c b/drivers/net/cxgb3/cxgb3_main.c
index 386461750d0f..4d538a4e9d55 100644
--- a/drivers/net/cxgb3/cxgb3_main.c
+++ b/drivers/net/cxgb3/cxgb3_main.c
@@ -1359,6 +1359,7 @@ out:
1359static int offload_close(struct t3cdev *tdev) 1359static int offload_close(struct t3cdev *tdev)
1360{ 1360{
1361 struct adapter *adapter = tdev2adap(tdev); 1361 struct adapter *adapter = tdev2adap(tdev);
1362 struct t3c_data *td = T3C_DATA(tdev);
1362 1363
1363 if (!test_bit(OFFLOAD_DEVMAP_BIT, &adapter->open_device_map)) 1364 if (!test_bit(OFFLOAD_DEVMAP_BIT, &adapter->open_device_map))
1364 return 0; 1365 return 0;
@@ -1369,7 +1370,7 @@ static int offload_close(struct t3cdev *tdev)
1369 sysfs_remove_group(&tdev->lldev->dev.kobj, &offload_attr_group); 1370 sysfs_remove_group(&tdev->lldev->dev.kobj, &offload_attr_group);
1370 1371
1371 /* Flush work scheduled while releasing TIDs */ 1372 /* Flush work scheduled while releasing TIDs */
1372 flush_scheduled_work(); 1373 flush_work_sync(&td->tid_release_task);
1373 1374
1374 tdev->lldev = NULL; 1375 tdev->lldev = NULL;
1375 cxgb3_set_dummy_ops(tdev); 1376 cxgb3_set_dummy_ops(tdev);