|
@@ -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, %lo(irq_err_count)(t1)
|
|
|
|
|
|
+1: ll t0, (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, %lo(irq_err_count)(t1)
|
|
|
|
|
|
+ lw t0, (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)
|