[MIPS] SMTC: Fix crash if # of TC's > # of VPE's after pt_regs irq cleanup.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
This commit is contained in:
parent
242954b5aa
commit
cb56837ea5
@ -83,7 +83,10 @@ FEXPORT(syscall_exit)
|
|||||||
FEXPORT(restore_all) # restore full frame
|
FEXPORT(restore_all) # restore full frame
|
||||||
#ifdef CONFIG_MIPS_MT_SMTC
|
#ifdef CONFIG_MIPS_MT_SMTC
|
||||||
/* Detect and execute deferred IPI "interrupts" */
|
/* Detect and execute deferred IPI "interrupts" */
|
||||||
|
LONG_L s0, TI_REGS($28)
|
||||||
|
LONG_S sp, TI_REGS($28)
|
||||||
jal deferred_smtc_ipi
|
jal deferred_smtc_ipi
|
||||||
|
LONG_S s0, TI_REGS($28)
|
||||||
/* Re-arm any temporarily masked interrupts not explicitly "acked" */
|
/* Re-arm any temporarily masked interrupts not explicitly "acked" */
|
||||||
mfc0 v0, CP0_TCSTATUS
|
mfc0 v0, CP0_TCSTATUS
|
||||||
ori v1, v0, TCSTATUS_IXMT
|
ori v1, v0, TCSTATUS_IXMT
|
||||||
|
@ -101,7 +101,9 @@ FEXPORT(__smtc_ipi_vector)
|
|||||||
lw t0,PT_PADSLOT5(sp)
|
lw t0,PT_PADSLOT5(sp)
|
||||||
/* Argument from sender passed in stack pad slot 4 */
|
/* Argument from sender passed in stack pad slot 4 */
|
||||||
lw a0,PT_PADSLOT4(sp)
|
lw a0,PT_PADSLOT4(sp)
|
||||||
PTR_LA ra, _ret_from_irq
|
LONG_L s0, TI_REGS($28)
|
||||||
|
LONG_S sp, TI_REGS($28)
|
||||||
|
PTR_LA ra, ret_from_irq
|
||||||
jr t0
|
jr t0
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -119,7 +121,10 @@ LEAF(self_ipi)
|
|||||||
subu t1,sp,PT_SIZE
|
subu t1,sp,PT_SIZE
|
||||||
sw ra,PT_EPC(t1)
|
sw ra,PT_EPC(t1)
|
||||||
sw a0,PT_PADSLOT4(t1)
|
sw a0,PT_PADSLOT4(t1)
|
||||||
|
LONG_L s0, TI_REGS($28)
|
||||||
|
LONG_S sp, TI_REGS($28)
|
||||||
la t2,ipi_decode
|
la t2,ipi_decode
|
||||||
|
LONG_S s0, TI_REGS($28)
|
||||||
sw t2,PT_PADSLOT5(t1)
|
sw t2,PT_PADSLOT5(t1)
|
||||||
/* Save pre-disable value of TCStatus */
|
/* Save pre-disable value of TCStatus */
|
||||||
sw t0,PT_TCSTATUS(t1)
|
sw t0,PT_TCSTATUS(t1)
|
||||||
|
Loading…
Reference in New Issue
Block a user