MIPS: Alchemy: reduce size of irq dispatcher
[linux-2.6.git] / arch / mips / alchemy / common / irq.c
index f5b148a..960a3ee 100644 (file)
@@ -519,8 +519,8 @@ asmlinkage void plat_irq_dispatch(void)
        unsigned long s, off;
 
        if (pending & CAUSEF_IP7) {
-               do_IRQ(MIPS_CPU_IRQ_BASE + 7);
-               return;
+               off = MIPS_CPU_IRQ_BASE + 7;
+               goto handle;
        } else if (pending & CAUSEF_IP2) {
                s = IC0_REQ0INT;
                off = AU1000_INTC0_INT_BASE;
@@ -542,7 +542,9 @@ spurious:
                spurious_interrupt();
                return;
        }
-       do_IRQ(__ffs(s) + off);
+       off += __ffs(s);
+handle:
+       do_IRQ(off);
 }
 
 /* setup edge/level and assign request 0/1 */