[PATCH]iwlwifi not correctly dealing with hotunplug
Oliver Neukum <[email protected]> Tue, 13 Nov 2007 19:26:53 +0100
| Newsgroups | gmane.linux.kernel.wireless.general,gmane.linux.network,gmane.linux.drivers.ipw2100.devel |
|---|---|
| Organization | SuSE Linux |
| Message-ID | <[email protected]> |
It makes no sense to enable interrupts if a device has been unplugged. In addition if in doubt IRQ_HANDLED should be returned. Signed-off-by: Oliver Neukum <[email protected]> Regards Oliver ---- --- linux-2.6.24-rc1/drivers/net/wireless/iwlwifi/iwl3945-base.c.alt 2007-11-13 12:23:07.000000000 +0100 +++ linux-2.6.24-rc1/drivers/net/wireless/iwlwifi/iwl3945-base.c 2007-11-13 12:26:00.000000000 +0100 @@ -4850,7 +4850,7 @@ static irqreturn_t iwl_isr(int irq, void if ((inta == 0xFFFFFFFF) || ((inta & 0xFFFFFFF0) == 0xa5a5a5a0)) { /* Hardware disappeared */ IWL_WARNING("HARDWARE GONE?? INTA == 0x%080x\n", inta); - goto none; + goto unplugged; } IWL_DEBUG_ISR("ISR inta 0x%08x, enabled 0x%08x, fh 0x%08x\n", @@ -4858,6 +4858,7 @@ static irqreturn_t iwl_isr(int irq, void /* iwl_irq_tasklet() will service interrupts and re-enable them */ tasklet_schedule(&priv->irq_tasklet); +unplugged: spin_unlock(&priv->lock); return IRQ_HANDLED;