diff options
Diffstat (limited to 'arch/mips64/kernel/scall_o32.S')
-rw-r--r-- | arch/mips64/kernel/scall_o32.S | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/mips64/kernel/scall_o32.S b/arch/mips64/kernel/scall_o32.S index 935d72848..c529ac04b 100644 --- a/arch/mips64/kernel/scall_o32.S +++ b/arch/mips64/kernel/scall_o32.S @@ -76,8 +76,14 @@ stack_done: 1: sd v0, PT_R2(sp) # result FEXPORT(o32_ret_from_sys_call) - lw t0, irq_stat # softirq_active - lw t1, irq_stat+4 # softirq_mask. unused delay slot + la t1, irq_stat # softirq_active +#ifdef CONFIG_SMP + lwu t0, TASK_PROCESSOR($28) + dsll t0, t0, 5 + daddu t1, t0 +#endif + lw t0, 0(t1) # softirq_active + lw t1, 4(t1) # softirq_mask. unused delay slot and t0, t1 bnez t0, o32_handle_softirq |