Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d599def5 authored by Maciej W. Rozycki's avatar Maciej W. Rozycki Committed by Ralf Baechle
Browse files

[MIPS] SB1250: Interrupt handler fixes



Mask cp0.status against cp0.cause.  Additionally, spurious interrupts are
not recorded.

Signed-off-by: default avatarMaciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent af8b1287
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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);
}