De-optimize and decomplicate the spurious interrupt handler.
authorThiemo Seufer <ths@networkno.de>
Sat, 4 Dec 2004 21:35:05 +0000 (21:35 +0000)
committerRalf Baechle <ralf@linux-mips.org>
Sat, 29 Oct 2005 18:30:15 +0000 (19:30 +0100)
Signed-off-by: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
arch/mips/kernel/entry.S

index 5eb4291..5e9a441 100644 (file)
@@ -128,28 +128,25 @@ FEXPORT(syscall_exit_work)
 /*
  * Common spurious interrupt handler.
  */
-       .text
-       .align  5
 LEAF(spurious_interrupt)
        /*
         * Someone tried to fool us by sending an interrupt but we
         * couldn't find a cause for it.
         */
+       PTR_LA  t1, irq_err_count
 #ifdef CONFIG_SMP
-       lui     t1, %hi(irq_err_count)
-1:     ll      t0, %lo(irq_err_count)(t1)
+1:     ll      t0, (t1)
        addiu   t0, 1
-       sc      t0, %lo(irq_err_count)(t1)
+       sc      t0, (t1)
 #if R10000_LLSC_WAR
        beqzl   t0, 1b
 #else
        beqz    t0, 1b
 #endif
 #else
-       lui     t1, %hi(irq_err_count)
-       lw      t0, %lo(irq_err_count)(t1)
+       lw      t0, (t1)
        addiu   t0, 1
-       sw      t0, %lo(irq_err_count)(t1)
+       sw      t0, (t1)
 #endif
        j       ret_from_irq
        END(spurious_interrupt)