aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/iwl-trans.c
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2011-07-20 17:51:22 -0700
committerWey-Yi Guy <wey-yi.w.guy@intel.com>2011-07-21 07:41:07 -0700
commit1e89cbac16dd91f1ddbf53c68fecb85d42793841 (patch)
treec183e9b924e90f01f858f0abc7b65c91f1a07297 /drivers/net/wireless/iwlwifi/iwl-trans.c
parentiwlagn: remove "disable otp refresh" W/A (diff)
downloadlinux-dev-1e89cbac16dd91f1ddbf53c68fecb85d42793841.tar.xz
linux-dev-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 '')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-trans.c6
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;