IRQ: Maintain regs pointer globally rather than passing to IRQ handlers
[linux-2.6-block.git] / arch / mips / kernel / irq.c
index d955aaefbb8eb1b521872e6685e18b849ff58c56..a00b0e7ab9b1d44106d20905379d594219ae9bf6 100644 (file)
@@ -55,13 +55,15 @@ unsigned long irq_hwmask[NR_IRQS];
  */
 asmlinkage unsigned int do_IRQ(unsigned int irq, struct pt_regs *regs)
 {
+       struct pt_regs *old_regs = set_irq_regs(regs);
        irq_enter();
 
        __DO_IRQ_SMTC_HOOK();
-       __do_IRQ(irq, regs);
+       __do_IRQ(irq);
 
        irq_exit();
 
+       set_irq_regs(old_regs);
        return 1;
 }