diff options
author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2006-10-08 12:24:23 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-10-09 18:20:46 -0400 |
commit | f431baa55abf8adeed0c718b51deacbc151f58f1 (patch) | |
tree | fe0383328c1d8bcb0fae7e266a437b980a05a7f9 /arch/mips/dec | |
parent | 441ee341ad63572f39cb8074e31806b5b1471d0b (diff) |
[MIPS] ret_from_irq adjustment
Make sure that RA on top of interrupt stack is an address of ret_from_irq,
so that dump_stack etc. can trace info interrupted context.
Also this patch fixes except_vec_vi_handler and __smtc_ipi_vector which
seems broken.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch/mips/dec')
-rw-r--r-- | arch/mips/dec/int-handler.S | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/mips/dec/int-handler.S b/arch/mips/dec/int-handler.S index 55d60d5e0e86..31dd47d1002d 100644 --- a/arch/mips/dec/int-handler.S +++ b/arch/mips/dec/int-handler.S | |||
@@ -266,10 +266,8 @@ | |||
266 | handle_it: | 266 | handle_it: |
267 | LONG_L s0, TI_REGS($28) | 267 | LONG_L s0, TI_REGS($28) |
268 | LONG_S sp, TI_REGS($28) | 268 | LONG_S sp, TI_REGS($28) |
269 | jal do_IRQ | 269 | PTR_LA ra, ret_from_irq |
270 | LONG_S s0, TI_REGS($28) | 270 | j do_IRQ |
271 | |||
272 | j ret_from_irq | ||
273 | nop | 271 | nop |
274 | 272 | ||
275 | #ifdef CONFIG_32BIT | 273 | #ifdef CONFIG_32BIT |
@@ -279,9 +277,8 @@ fpu: | |||
279 | #endif | 277 | #endif |
280 | 278 | ||
281 | spurious: | 279 | spurious: |
282 | jal spurious_interrupt | 280 | PTR_LA ra, _ret_from_irq |
283 | nop | 281 | j spurious_interrupt |
284 | j ret_from_irq | ||
285 | nop | 282 | nop |
286 | END(plat_irq_dispatch) | 283 | END(plat_irq_dispatch) |
287 | 284 | ||