From be7086a59f786f4db4aaf7ae86ae42c347cd4967 Mon Sep 17 00:00:00 2001 From: Ralf Baechle Date: Mon, 17 Sep 2012 01:23:21 +0200 Subject: [PATCH] --- yaml --- r: 323123 b: refs/heads/master c: e376fdf42062e7373b82093b278f99aa2b547db7 h: refs/heads/master i: 323121: e35ba464775bb72e3d7d3973f7bfb29eca5ff808 323119: 3c57feaff6afdc016207f7893bd34f693e0ff97c v: v3 --- [refs] | 2 +- trunk/arch/mips/mti-malta/malta-int.c | 9 ++++++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 4d4700841fab..c8ba998b7943 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 636221b86ce0b3b1238c72bad7172d5227d408ac +refs/heads/master: e376fdf42062e7373b82093b278f99aa2b547db7 diff --git a/trunk/arch/mips/mti-malta/malta-int.c b/trunk/arch/mips/mti-malta/malta-int.c index 7b13a4caeea4..fea823f18479 100644 --- a/trunk/arch/mips/mti-malta/malta-int.c +++ b/trunk/arch/mips/mti-malta/malta-int.c @@ -273,16 +273,19 @@ asmlinkage void plat_irq_dispatch(void) unsigned int pending = read_c0_cause() & read_c0_status() & ST0_IM; int irq; + if (unlikely(!pending)) { + spurious_interrupt(); + return; + } + irq = irq_ffs(pending); if (irq == MIPSCPU_INT_I8259A) malta_hw0_irqdispatch(); else if (gic_present && ((1 << irq) & ipi_map[smp_processor_id()])) malta_ipi_irqdispatch(); - else if (irq >= 0) - do_IRQ(MIPS_CPU_IRQ_BASE + irq); else - spurious_interrupt(); + do_IRQ(MIPS_CPU_IRQ_BASE + irq); } #ifdef CONFIG_MIPS_MT_SMP