Browse Source

[PATCH] Char: isicom, check card state in isr

Check if the card really interrupted us by reading its IO space and eventualy
return IRQ_NONE.

Signed-off-by: Jiri Slaby <jirislaby@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Jiri Slaby 18 years ago
parent
commit
cb4a10ccb0
1 changed files with 5 additions and 0 deletions
  1. 5 0
      drivers/char/isicom.c

+ 5 - 0
drivers/char/isicom.c

@@ -540,6 +540,11 @@ static irqreturn_t isicom_interrupt(int irq, void *dev_id)
 		return IRQ_NONE;
 
 	base = card->base;
+
+	/* did the card interrupt us? */
+	if (!(inw(base + 0x0e) & 0x02))
+		return IRQ_NONE;
+
 	spin_lock(&card->card_lock);
 
 	/*