mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 22:21:40 +00:00
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:
parent
942b6f6216
commit
b59a9504cb
@ -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)
|
||||||
|
Loading…
Reference in New Issue
Block a user