|
|
@@ -80,6 +80,8 @@ irqreturn_t c0_compare_interrupt(int irq, void *dev_id)
|
|
|
write_c0_compare(read_c0_compare());
|
|
|
cd = &per_cpu(mips_clockevent_device, cpu);
|
|
|
cd->event_handler(cd);
|
|
|
+ } else {
|
|
|
+ return IRQ_NONE;
|
|
|
}
|
|
|
|
|
|
out:
|
|
|
@@ -88,7 +90,11 @@ out:
|
|
|
|
|
|
struct irqaction c0_compare_irqaction = {
|
|
|
.handler = c0_compare_interrupt,
|
|
|
- .flags = IRQF_PERCPU | IRQF_TIMER,
|
|
|
+ /*
|
|
|
+ * IRQF_SHARED: The timer interrupt may be shared with other interrupts
|
|
|
+ * such as perf counter and FDC interrupts.
|
|
|
+ */
|
|
|
+ .flags = IRQF_PERCPU | IRQF_TIMER | IRQF_SHARED,
|
|
|
.name = "timer",
|
|
|
};
|
|
|
|