Previously I've got an interrupt while removing the driver. Signed-off-by: Holger Schurig <hs4233@xxxxxxxxxxxxxxxxxxxx> Index: wireless-2.6/drivers/net/wireless/libertas/if_cs.c =================================================================== --- wireless-2.6.orig/drivers/net/wireless/libertas/if_cs.c 2008-01-25 13:54:08.000000000 +0100 +++ wireless-2.6/drivers/net/wireless/libertas/if_cs.c 2008-01-25 13:54:50.000000000 +0100 @@ -249,14 +249,14 @@ static irqreturn_t if_cs_interrupt(int i lbs_deb_enter(LBS_DEB_CS); int_cause = if_cs_read16(card, IF_CS_C_INT_CAUSE); - if(int_cause == 0x0) { + if (int_cause == 0x0) { /* Not for us */ return IRQ_NONE; } else if (int_cause == 0xffff) { /* Read in junk, the card has probably been removed */ card->priv->surpriseremoved = 1; - + return IRQ_HANDLED; } else { if (int_cause & IF_CS_H_IC_TX_OVER) lbs_host_to_card_done(card->priv); @@ -715,8 +715,8 @@ static void if_cs_release(struct pcmcia_ lbs_deb_enter(LBS_DEB_CS); - pcmcia_disable_device(p_dev); free_irq(p_dev->irq.AssignedIRQ, card); + pcmcia_disable_device(p_dev); if (card->iobase) ioport_unmap(card->iobase); - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html