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/kernel/smtc-asm.S | |
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/kernel/smtc-asm.S')
-rw-r--r-- | arch/mips/kernel/smtc-asm.S | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/arch/mips/kernel/smtc-asm.S b/arch/mips/kernel/smtc-asm.S index 76cb31d57482..1cb9441f1474 100644 --- a/arch/mips/kernel/smtc-asm.S +++ b/arch/mips/kernel/smtc-asm.S | |||
@@ -97,15 +97,12 @@ FEXPORT(__smtc_ipi_vector) | |||
97 | SAVE_ALL | 97 | SAVE_ALL |
98 | CLI | 98 | CLI |
99 | TRACE_IRQS_OFF | 99 | TRACE_IRQS_OFF |
100 | move a0,sp | ||
101 | /* Function to be invoked passed stack pad slot 5 */ | 100 | /* Function to be invoked passed stack pad slot 5 */ |
102 | lw t0,PT_PADSLOT5(sp) | 101 | lw t0,PT_PADSLOT5(sp) |
103 | /* Argument from sender passed in stack pad slot 4 */ | 102 | /* Argument from sender passed in stack pad slot 4 */ |
104 | lw a1,PT_PADSLOT4(sp) | 103 | lw a0,PT_PADSLOT4(sp) |
105 | jalr t0 | 104 | PTR_LA ra, _ret_from_irq |
106 | nop | 105 | jr t0 |
107 | j ret_from_irq | ||
108 | nop | ||
109 | 106 | ||
110 | /* | 107 | /* |
111 | * Called from idle loop to provoke processing of queued IPIs | 108 | * Called from idle loop to provoke processing of queued IPIs |