From 52947021da7ec13da61c6f99e9162f78c4dfa7aa Mon Sep 17 00:00:00 2001 From: "Maciej W. Rozycki" Date: Tue, 3 Oct 2006 12:42:02 +0100 Subject: [PATCH] --- yaml --- r: 38282 b: refs/heads/master c: d599def5cd81439e7da04dc6754b257043f5e584 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/arch/mips/sibyte/sb1250/irq.c | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 5f114cc06257..eca1e531658f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: af8b128719f5248e542036ea994610a29d0642a6 +refs/heads/master: d599def5cd81439e7da04dc6754b257043f5e584 diff --git a/trunk/arch/mips/sibyte/sb1250/irq.c b/trunk/arch/mips/sibyte/sb1250/irq.c index a451b4c7732d..f9bd9f074517 100644 --- a/trunk/arch/mips/sibyte/sb1250/irq.c +++ b/trunk/arch/mips/sibyte/sb1250/irq.c @@ -442,7 +442,7 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs) * blasting the high 32 bits. */ - pending = read_c0_cause(); + pending = read_c0_cause() & read_c0_status(); #ifdef CONFIG_SIBYTE_SB1250_PROF if (pending & CAUSEF_IP7) /* Cpu performance counter interrupt */ @@ -476,5 +476,8 @@ asmlinkage void plat_irq_dispatch(struct pt_regs *regs) R_IMR_INTERRUPT_STATUS_BASE))); if (mask) do_IRQ(fls64(mask) - 1, regs); - } + else + spurious_interrupt(regs); + } else + spurious_interrupt(regs); }