iwl3945: use cancel_delayed_work_sync to cancel rfkill_poll
authorReinette Chatre <reinette.chatre@intel.com>
Mon, 20 Apr 2009 21:37:01 +0000 (14:37 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 21 Apr 2009 20:43:32 +0000 (16:43 -0400)
Users reported lockup with work still trying to run
after module has been unloaded.

http://thread.gmane.org/gmane.linux.kernel.wireless.general/30594/focus=30601

Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Reported-by: TJ <ubuntu@tjworld.net>
Reported-by: Huaxu Wan <huaxu.wan@linux.intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl3945-base.c

index da61ecd62882142ac72327df219da688473a355d..1299479f99dc4997d5b5f831bcd2a078c0aeb9e7 100644 (file)
@@ -5196,7 +5196,7 @@ static void __devexit iwl3945_pci_remove(struct pci_dev *pdev)
        sysfs_remove_group(&pdev->dev.kobj, &iwl3945_attribute_group);
 
        iwl_rfkill_unregister(priv);
-       cancel_delayed_work(&priv->rfkill_poll);
+       cancel_delayed_work_sync(&priv->rfkill_poll);
 
        iwl3945_dealloc_ucode_pci(priv);