From: Jiri Slaby Check if the card really interrupted us by reading its IO space and eventualy return IRQ_NONE. Signed-off-by: Jiri Slaby Signed-off-by: Andrew Morton --- drivers/char/isicom.c | 5 +++++ 1 file changed, 5 insertions(+) diff -puN drivers/char/isicom.c~char-isicom-check-card-state-in-isr drivers/char/isicom.c --- a/drivers/char/isicom.c~char-isicom-check-card-state-in-isr +++ a/drivers/char/isicom.c @@ -540,6 +540,11 @@ static irqreturn_t isicom_interrupt(int return IRQ_NONE; base = card->base; + + /* did the card interrupt us? */ + if (!(inw(base + 0x0e) & 0x02)) + return IRQ_NONE; + spin_lock(&card->card_lock); /* _