|
@@ -65,24 +65,7 @@ int arch_show_interrupts(struct seq_file *p, int prec)
|
|
|
*/
|
|
|
void handle_IRQ(unsigned int irq, struct pt_regs *regs)
|
|
|
{
|
|
|
- struct pt_regs *old_regs = set_irq_regs(regs);
|
|
|
-
|
|
|
- irq_enter();
|
|
|
-
|
|
|
- /*
|
|
|
- * Some hardware gives randomly wrong interrupts. Rather
|
|
|
- * than crashing, do something sensible.
|
|
|
- */
|
|
|
- if (unlikely(irq >= nr_irqs)) {
|
|
|
- if (printk_ratelimit())
|
|
|
- printk(KERN_WARNING "Bad IRQ%u\n", irq);
|
|
|
- ack_bad_irq(irq);
|
|
|
- } else {
|
|
|
- generic_handle_irq(irq);
|
|
|
- }
|
|
|
-
|
|
|
- irq_exit();
|
|
|
- set_irq_regs(old_regs);
|
|
|
+ __handle_domain_irq(NULL, irq, false, regs);
|
|
|
}
|
|
|
|
|
|
/*
|