iwl3945: use cancel_delayed_work_sync to cancel rfkill_poll

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 <[email protected]>
Reported-by: TJ <[email protected]>
Reported-by: Huaxu Wan <[email protected]>
Signed-off-by: John W. Linville <[email protected]>
This commit is contained in:
Reinette Chatre 2009-04-20 14:37:01 -07:00 • committed by John W. Linville
commit 71d449b55a

View 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);