De-optimize and decomplicate the spurious interrupt handler.

Signed-off-by: Thiemo Seufer <ths@networkno.de>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
Thiemo Seufer 2004-12-04 21:35:05 +00:00 committed by Ralf Baechle
parent 942b6f6216
commit b59a9504cb

View File

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