diff options
author | Thiemo Seufer <ths@networkno.de> | 2004-12-04 16:35:05 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2005-10-29 14:30:15 -0400 |
commit | b59a9504cb93db7fae31e60760725d48652a1fc3 (patch) | |
tree | 261c9e21a61fc0abe0dd7f21734b3497ed71d377 /arch/mips/kernel/entry.S | |
parent | 942b6f62164cf8822dd03b1569777f4663d1abd7 (diff) |
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>
Diffstat (limited to 'arch/mips/kernel/entry.S')
-rw-r--r-- | arch/mips/kernel/entry.S | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/arch/mips/kernel/entry.S b/arch/mips/kernel/entry.S index 5eb429137e06..5e9a44168681 100644 --- a/arch/mips/kernel/entry.S +++ b/arch/mips/kernel/entry.S | |||
@@ -128,28 +128,25 @@ FEXPORT(syscall_exit_work) | |||
128 | /* | 128 | /* |
129 | * Common spurious interrupt handler. | 129 | * Common spurious interrupt handler. |
130 | */ | 130 | */ |
131 | .text | ||
132 | .align 5 | ||
133 | LEAF(spurious_interrupt) | 131 | LEAF(spurious_interrupt) |
134 | /* | 132 | /* |
135 | * Someone tried to fool us by sending an interrupt but we | 133 | * Someone tried to fool us by sending an interrupt but we |
136 | * couldn't find a cause for it. | 134 | * couldn't find a cause for it. |
137 | */ | 135 | */ |
136 | PTR_LA t1, irq_err_count | ||
138 | #ifdef CONFIG_SMP | 137 | #ifdef CONFIG_SMP |
139 | lui t1, %hi(irq_err_count) | 138 | 1: ll t0, (t1) |
140 | 1: ll t0, %lo(irq_err_count)(t1) | ||
141 | addiu t0, 1 | 139 | addiu t0, 1 |
142 | sc t0, %lo(irq_err_count)(t1) | 140 | sc t0, (t1) |
143 | #if R10000_LLSC_WAR | 141 | #if R10000_LLSC_WAR |
144 | beqzl t0, 1b | 142 | beqzl t0, 1b |
145 | #else | 143 | #else |
146 | beqz t0, 1b | 144 | beqz t0, 1b |
147 | #endif | 145 | #endif |
148 | #else | 146 | #else |
149 | lui t1, %hi(irq_err_count) | 147 | lw t0, (t1) |
150 | lw t0, %lo(irq_err_count)(t1) | ||
151 | addiu t0, 1 | 148 | addiu t0, 1 |
152 | sw t0, %lo(irq_err_count)(t1) | 149 | sw t0, (t1) |
153 | #endif | 150 | #endif |
154 | j ret_from_irq | 151 | j ret_from_irq |
155 | END(spurious_interrupt) | 152 | END(spurious_interrupt) |