summaryrefslogtreecommitdiffstats
path: root/drivers/char/cyclades.c
diff options
context:
space:
mode:
authorJiri Slaby <jirislaby@gmail.com>2007-05-08 09:36:24 +0200
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-05-08 20:15:24 +0200
commitf1e83c6c1e7b97ac11d88502c3e5b80cdac9a683 (patch)
tree03500a568a7e14a7edf71ac5b2cd43b5d23f6c38 /drivers/char/cyclades.c
parentChar: cyclades, clear interrupts before releasing (diff)
downloadlinux-f1e83c6c1e7b97ac11d88502c3e5b80cdac9a683.tar.xz
linux-f1e83c6c1e7b97ac11d88502c3e5b80cdac9a683.zip
Char: cyclades, allow DEBUG_SHIRQ
Test if base addr is non-null in ISR to prove the card has been correctly initialized. This is needed for DEBUG_SHIRQ for example. 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>
Diffstat (limited to 'drivers/char/cyclades.c')
-rw-r--r--drivers/char/cyclades.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/char/cyclades.c b/drivers/char/cyclades.c
index 353e888295d1..9d22d58f4298 100644
--- a/drivers/char/cyclades.c
+++ b/drivers/char/cyclades.c
@@ -1444,6 +1444,10 @@ static irqreturn_t cyy_interrupt(int irq, void *dev_id)
card_base_addr = cinfo->base_addr;
index = cinfo->bus_index;
+ /* card was not initialized yet (e.g. DEBUG_SHIRQ) */
+ if (unlikely(card_base_addr == NULL))
+ return IRQ_HANDLED;
+
/* This loop checks all chips in the card. Make a note whenever
_any_ chip had some work to do, as this is considered an
indication that there will be more to do. Only when no chip