mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-23 15:32:33 +00:00
d8655868ca
Upstream handling of MIPS CPU IRQs is rather hackish and the interrupts are being enabled unconditionally in various places because of legacy code. Performance counter events are routed both through the GIC and through legacy CPU IRQ7 events, causing spurious interrupts. Fix this by disabling IRQ7 when trying to access the performance counter IRQ. Signed-off-by: Felix Fietkau <nbd@nbd.name>
16 lines
355 B
Diff
16 lines
355 B
Diff
--- a/arch/mips/ralink/irq-gic.c
|
|
+++ b/arch/mips/ralink/irq-gic.c
|
|
@@ -15,6 +15,12 @@
|
|
|
|
int get_c0_perfcount_int(void)
|
|
{
|
|
+ /*
|
|
+ * Performance counter events are routed through GIC.
|
|
+ * Prevent them from firing on CPU IRQ7 as well
|
|
+ */
|
|
+ clear_c0_status(IE_SW0 << 7);
|
|
+
|
|
return gic_get_c0_perfcount_int();
|
|
}
|
|
EXPORT_SYMBOL_GPL(get_c0_perfcount_int);
|