summaryrefslogtreecommitdiff
path: root/arch/mips/sgi-ip32/ip32-irq.c
diff options
context:
space:
mode:
authorThomas Bogendoerfer <tsbogend@alpha.franken.de>2008-06-24 00:48:05 +0200
committerRalf Baechle <ralf@linux-mips.org>2008-07-03 19:14:27 +0100
commit1faf7f25b2aa4fcd2ae0ec2fd2e9fb9ff4bfee10 (patch)
tree9cae252dc929d6e32e5b126d89d9c9cc3e429a06 /arch/mips/sgi-ip32/ip32-irq.c
parentc461a973118346d5c103aaaddd62e53939fd7c67 (diff)
downloadlinux-3.10-1faf7f25b2aa4fcd2ae0ec2fd2e9fb9ff4bfee10.tar.gz
linux-3.10-1faf7f25b2aa4fcd2ae0ec2fd2e9fb9ff4bfee10.tar.bz2
linux-3.10-1faf7f25b2aa4fcd2ae0ec2fd2e9fb9ff4bfee10.zip
[MIPS] IP32: Fix unexpected irq 71
It's possible that the crime interrupt handler is called without pending interrupts (probably a hardware issue). To avoid irritating "unexpected irq 71" messages, we now just ignore the spurious crime interrupts. Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/sgi-ip32/ip32-irq.c')
-rw-r--r--arch/mips/sgi-ip32/ip32-irq.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/mips/sgi-ip32/ip32-irq.c b/arch/mips/sgi-ip32/ip32-irq.c
index b0ea0e43ba4..0d6b6663d5f 100644
--- a/arch/mips/sgi-ip32/ip32-irq.c
+++ b/arch/mips/sgi-ip32/ip32-irq.c
@@ -425,6 +425,11 @@ static void ip32_irq0(void)
BUILD_BUG_ON(MACEISA_SERIAL2_RDMAOR_IRQ - MACEISA_AUDIO_SW_IRQ != 31);
crime_int = crime->istat & crime_mask;
+
+ /* crime sometime delivers spurious interrupts, ignore them */
+ if (unlikely(crime_int == 0))
+ return;
+
irq = MACE_VID_IN1_IRQ + __ffs(crime_int);
if (crime_int & CRIME_MACEISA_INT_MASK) {