Skip to content

Commit

Permalink
[MIPS] SB1250: Interrupt handler fixes
Browse files Browse the repository at this point in the history
Mask cp0.status against cp0.cause.  Additionally, spurious interrupts are
not recorded.

Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
  • Loading branch information
Maciej W. Rozycki authored and Ralf Baechle committed Oct 3, 2006
1 parent af8b128 commit d599def
Showing 1 changed file with 5 additions and 2 deletions.
7 changes: 5 additions & 2 deletions arch/mips/sibyte/sb1250/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -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 */
Expand Down Expand Up @@ -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);
}

0 comments on commit d599def

Please sign in to comment.