From cb4a10ccb0c5b5b02dec1a4a97cba1e8b2c2a325 Mon Sep 17 00:00:00 2001
From: Jiri Slaby <jirislaby@gmail.com>
Date: Sat, 10 Feb 2007 01:44:53 -0800
Subject: [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>
---
 drivers/char/isicom.c | 5 +++++
 1 file changed, 5 insertions(+)

(limited to 'drivers/char/isicom.c')

diff --git a/drivers/char/isicom.c b/drivers/char/isicom.c
index 42171ad001dd..eddb8d3a620e 100644
--- a/drivers/char/isicom.c
+++ b/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);
 
 	/*
-- 
cgit