summaryrefslogtreecommitdiffstats
path: root/arch/mips/dec/int-handler.S
diff options
context:
space:
mode:
authorAtsushi Nemoto <anemo@mba.ocn.ne.jp>2006-10-09 01:24:23 +0900
committerRalf Baechle <ralf@linux-mips.org>2006-10-09 23:20:46 +0100
commitf431baa55abf8adeed0c718b51deacbc151f58f1 (patch)
treefe0383328c1d8bcb0fae7e266a437b980a05a7f9 /arch/mips/dec/int-handler.S
parent441ee341ad63572f39cb8074e31806b5b1471d0b (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/int-handler.S')
-rw-r--r--arch/mips/dec/int-handler.S11
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/mips/dec/int-handler.S b/arch/mips/dec/int-handler.S
index 55d60d5e0e8..31dd47d1002 100644
--- a/arch/mips/dec/int-handler.S
+++ b/arch/mips/dec/int-handler.S
@@ -266,10 +266,8 @@
handle_it:
LONG_L s0, TI_REGS($28)
LONG_S sp, TI_REGS($28)
- jal do_IRQ
- LONG_S s0, TI_REGS($28)
-
- j ret_from_irq
+ PTR_LA ra, ret_from_irq
+ j do_IRQ
nop
#ifdef CONFIG_32BIT
@@ -279,9 +277,8 @@ fpu:
#endif
spurious:
- jal spurious_interrupt
- nop
- j ret_from_irq
+ PTR_LA ra, _ret_from_irq
+ j spurious_interrupt
nop
END(plat_irq_dispatch)