[Jaunty SRU] LP#345710 [v2: description modified] iwl3945: cancel rfkill_poll with sync when?the module is exiting
Huaxu Wan
huaxu.wan at linux.intel.com
Wed Jul 1 03:11:15 UTC 2009
Hi Stefan,
The patch is fine for me. It works for 2.6.28 kernel. But, this bug is
not found with 2.6.30 or above kernel. This patch is not valuable to
2.6.30+, but 2.6.28 stable. I have no idea about whether it should be
send to upstream. Please do it if you want.
Thanks
Huaxu
On 11:49 Tue 30 Jun, Stefan Bader wrote:
> Hi Huaxu,
>
> we got now confirmed in the bug, that the upstream part alone does not
> fix the problem. prepared the following update to it. I added your
> signed-off for now, is that ok? Should I send it upstream or do you want
> to do that?
>
> Thanks,
> Stefan
>
>
> --
>
> When all other means of communication fail, try words!
>
>
> >From c64c59ea22b61a2c3f64dd269812b7ae5d3331ec Mon Sep 17 00:00:00 2001
> From: Stefan Bader <stefan.bader at canonical.com>
> Date: Fri, 26 Jun 2009 09:01:33 +0200
> Subject: [PATCH] iwl3945: Move cancel_delayed_work_sync to avoid lockup
>
> BugLink: http://bugs.launchpad.net/ubuntu/+bug/345710
>
> The issue of calling the rfkill workqueue on module remove had been tried to
> solve by commit 71d449b55abf5018d7c711b2b62abc0c083723c4.
> However the change from cancel_delayed_work to the sync version does not seem
> to be enough to prevent the lockup. Moving the cancelation down to a later
> time according to Huaxu Wan's version 2 patch.
>
> Signed-off-by: Huaxu Wan <huaxu.wan at linux.intel.com>
> Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
> Tested-by: Mcarni <mcarni at yahoo.it>
> ---
> drivers/net/wireless/iwlwifi/iwl3945-base.c | 3 +--
> 1 files changed, 1 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c
> index cb9bd4c..e977af4 100644
> --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c
> +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c
> @@ -4245,8 +4245,6 @@ static void __devexit iwl3945_pci_remove(struct pci_dev *pdev)
>
> sysfs_remove_group(&pdev->dev.kobj, &iwl3945_attribute_group);
>
> - cancel_delayed_work_sync(&priv->rfkill_poll);
> -
> iwl3945_dealloc_ucode_pci(priv);
>
> if (priv->rxq.bd)
> @@ -4258,6 +4256,7 @@ static void __devexit iwl3945_pci_remove(struct pci_dev *pdev)
>
> /*netif_stop_queue(dev); */
> flush_workqueue(priv->workqueue);
> + cancel_delayed_work_sync(&priv->rfkill_poll);
>
> /* ieee80211_unregister_hw calls iwl3945_mac_stop, which flushes
> * priv->workqueue... so we can't take down the workqueue
> --
> 1.5.4.3
>
--
Thanks
Huaxu
More information about the kernel-team
mailing list