return ok;
}
- static void poll_all_shared_irqs(void)
+ static void poll_spurious_irqs(unsigned long dummy)
{
struct irq_desc *desc;
int i;
if (!(status & IRQ_SPURIOUS_DISABLED))
continue;
+ local_irq_disable();
try_one_irq(i, desc);
+ local_irq_enable();
}
- }
-
- static void poll_spurious_irqs(unsigned long dummy)
- {
- poll_all_shared_irqs();
mod_timer(&poll_spurious_irq_timer,
jiffies + POLL_SPURIOUS_IRQ_INTERVAL);
}
- #ifdef CONFIG_DEBUG_SHIRQ
- void debug_poll_all_shared_irqs(void)
- {
- poll_all_shared_irqs();
- }
- #endif
-
/*
* If 99,900 of the previous 100,000 interrupts have not been handled
* then assume that the IRQ is stuck in some manner. Drop a diagnostic