瀏覽代碼

[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 年之前
父節點
當前提交
cb4a10ccb0
共有 1 個文件被更改,包括 5 次插入0 次删除
  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;
 		return IRQ_NONE;
 
 
 	base = card->base;
 	base = card->base;
+
+	/* did the card interrupt us? */
+	if (!(inw(base + 0x0e) & 0x02))
+		return IRQ_NONE;
+
 	spin_lock(&card->card_lock);
 	spin_lock(&card->card_lock);
 
 
 	/*
 	/*