iwlwifi not correctly dealing with hotunplug
Subsystems (3)
PATCH 1/1 iwlwifi not correctly dealing with hotunplug
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
----
drivers/net/wireless/iwlwifi/iwl3945-base.c renamed from drivers/net/wireless/iwlwifi/iwl3945-base.c.alt +2 -1
@@ -4850,7 +4850,7 @@ static irqreturn_t iwl_isr(int irq, voidif ((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 ;
Quoted 4 lines · Oliver Neukum
It makes no sense to enable interrupts if a device has been unplugged. In addition if in doubt
IRQ_HANDLEDshould be returned.Signed-off-by Oliver Neukum <[email protected]>
Might want to forward to linux-wireless@ ? And maybe cc the ipw2100@ sourceforge upstream lists too.
Dan
Quoted 28 lines
Regards
Oliver----
drivers/net/wireless/iwlwifi/iwl3945-base.c renamed from drivers/net/wireless/iwlwifi/iwl3945-base.c.alt +2
-2@@ -4850,7 +4850,7 @@ static irqreturn_t iwl_isr(int irq, voidif ((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 ; -To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html