diff options
author | Emmanuel Grumbach <emmanuel.grumbach@intel.com> | 2011-07-21 02:51:22 +0200 |
---|---|---|
committer | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2011-07-21 16:41:07 +0200 |
commit | 1e89cbac16dd91f1ddbf53c68fecb85d42793841 (patch) | |
tree | c183e9b924e90f01f858f0abc7b65c91f1a07297 /drivers/net/wireless/iwlwifi/iwl-trans.c | |
parent | iwlagn: remove "disable otp refresh" W/A (diff) | |
download | linux-1e89cbac16dd91f1ddbf53c68fecb85d42793841.tar.xz linux-1e89cbac16dd91f1ddbf53c68fecb85d42793841.zip |
iwlagn: probe would crash with DEBUG_SHIRQ
This is since my patch:
iwlagn: introduce transport layer and implement rx_init
The IRQ is requested before the locks are initialized, hence the crash.
Initialize the tasklet before we request the IRQ on the way.
Reported-by: Johannes Berg <johannes.berg@intel.com>
Tested-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-trans.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-trans.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-trans.c b/drivers/net/wireless/iwlwifi/iwl-trans.c index 582ab1b8e734..41f0de914008 100644 --- a/drivers/net/wireless/iwlwifi/iwl-trans.c +++ b/drivers/net/wireless/iwlwifi/iwl-trans.c @@ -1153,6 +1153,9 @@ int iwl_trans_register(struct iwl_trans *trans, struct iwl_priv *priv) priv->trans.ops = &trans_ops; priv->trans.priv = priv; + tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long)) + iwl_irq_tasklet, (unsigned long)priv); + iwl_alloc_isr_ict(priv); err = request_irq(priv->bus->irq, iwl_isr_ict, IRQF_SHARED, @@ -1163,9 +1166,6 @@ int iwl_trans_register(struct iwl_trans *trans, struct iwl_priv *priv) return err; } - tasklet_init(&priv->irq_tasklet, (void (*)(unsigned long)) - iwl_irq_tasklet, (unsigned long)priv); - INIT_WORK(&priv->rx_replenish, iwl_bg_rx_replenish); return 0; |