aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/ehea
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
commitf5c35cc191afd08d660e6db0fecc9f431dc8f273 (patch)
tree74a6544921bec9a4c994846d3149729c1968a2be /drivers/net/ehea
parent3d6b892bcc4c810071e36d8aff25aa171f55f93d (diff)
ehea: don't use flush_scheduled_work()
Directly cancel port->reset_task from ehea_shutdown_single_port() instead. As this cancels the work for each port on driver detach, flushing system_wq from ehea_remove() or ehea_module_exit() is no longer necessary. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Breno Leitao <leitao@linux.vnet.ibm.com> Cc: netdev@vger.kernel.org
Diffstat (limited to 'drivers/net/ehea')
-rw-r--r--drivers/net/ehea/ehea_main.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/drivers/net/ehea/ehea_main.c b/drivers/net/ehea/ehea_main.c
index d51def112d35..81e5b7b49e9e 100644
--- a/drivers/net/ehea/ehea_main.c
+++ b/drivers/net/ehea/ehea_main.c
@@ -3318,6 +3318,8 @@ out_err:
3318static void ehea_shutdown_single_port(struct ehea_port *port) 3318static void ehea_shutdown_single_port(struct ehea_port *port)
3319{ 3319{
3320 struct ehea_adapter *adapter = port->adapter; 3320 struct ehea_adapter *adapter = port->adapter;
3321
3322 cancel_work_sync(&port->reset_task);
3321 unregister_netdev(port->netdev); 3323 unregister_netdev(port->netdev);
3322 ehea_unregister_port(port); 3324 ehea_unregister_port(port);
3323 kfree(port->mc_list); 3325 kfree(port->mc_list);
@@ -3607,8 +3609,6 @@ static int __devexit ehea_remove(struct platform_device *dev)
3607 3609
3608 ehea_remove_device_sysfs(dev); 3610 ehea_remove_device_sysfs(dev);
3609 3611
3610 flush_scheduled_work();
3611
3612 ibmebus_free_irq(adapter->neq->attr.ist1, adapter); 3612 ibmebus_free_irq(adapter->neq->attr.ist1, adapter);
3613 tasklet_kill(&adapter->neq_tasklet); 3613 tasklet_kill(&adapter->neq_tasklet);
3614 3614
@@ -3797,7 +3797,6 @@ static void __exit ehea_module_exit(void)
3797{ 3797{
3798 int ret; 3798 int ret;
3799 3799
3800 flush_scheduled_work();
3801 driver_remove_file(&ehea_driver.driver, &driver_attr_capabilities); 3800 driver_remove_file(&ehea_driver.driver, &driver_attr_capabilities);
3802 ibmebus_unregister_driver(&ehea_driver); 3801 ibmebus_unregister_driver(&ehea_driver);
3803 unregister_reboot_notifier(&ehea_reboot_nb); 3802 unregister_reboot_notifier(&ehea_reboot_nb);