diff options
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index d60adcb9bd4a..d5107bb413cd 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c | |||
@@ -5156,9 +5156,10 @@ static irqreturn_t iwl_isr(int irq, void *data) | |||
5156 | } | 5156 | } |
5157 | 5157 | ||
5158 | if ((inta == 0xFFFFFFFF) || ((inta & 0xFFFFFFF0) == 0xa5a5a5a0)) { | 5158 | if ((inta == 0xFFFFFFFF) || ((inta & 0xFFFFFFF0) == 0xa5a5a5a0)) { |
5159 | /* Hardware disappeared */ | 5159 | /* Hardware disappeared. It might have already raised |
5160 | * an interrupt */ | ||
5160 | IWL_WARNING("HARDWARE GONE?? INTA == 0x%080x\n", inta); | 5161 | IWL_WARNING("HARDWARE GONE?? INTA == 0x%080x\n", inta); |
5161 | goto none; | 5162 | goto unplugged; |
5162 | } | 5163 | } |
5163 | 5164 | ||
5164 | IWL_DEBUG_ISR("ISR inta 0x%08x, enabled 0x%08x, fh 0x%08x\n", | 5165 | IWL_DEBUG_ISR("ISR inta 0x%08x, enabled 0x%08x, fh 0x%08x\n", |
@@ -5166,8 +5167,9 @@ static irqreturn_t iwl_isr(int irq, void *data) | |||
5166 | 5167 | ||
5167 | /* iwl_irq_tasklet() will service interrupts and re-enable them */ | 5168 | /* iwl_irq_tasklet() will service interrupts and re-enable them */ |
5168 | tasklet_schedule(&priv->irq_tasklet); | 5169 | tasklet_schedule(&priv->irq_tasklet); |
5169 | spin_unlock(&priv->lock); | ||
5170 | 5170 | ||
5171 | unplugged: | ||
5172 | spin_unlock(&priv->lock); | ||
5171 | return IRQ_HANDLED; | 5173 | return IRQ_HANDLED; |
5172 | 5174 | ||
5173 | none: | 5175 | none: |