diff options
-rw-r--r-- | arch/mips/kernel/cps-vec.S | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/arch/mips/kernel/cps-vec.S b/arch/mips/kernel/cps-vec.S index 01eb8a671920..2017cbb2ade5 100644 --- a/arch/mips/kernel/cps-vec.S +++ b/arch/mips/kernel/cps-vec.S @@ -347,12 +347,13 @@ LEAF(mips_cps_boot_vpes) jr ra nop +1: /* Enter VPE configuration state */ .set push .set MIPS_ISA_LEVEL_RAW .set mt - -1: /* Enter VPE configuration state */ dvpe + .set pop + la t1, 1f jr.hb t1 nop @@ -379,6 +380,10 @@ LEAF(mips_cps_boot_vpes) mtc0 t0, CP0_VPECONTROL ehb + .set push + .set MIPS_ISA_LEVEL_RAW + .set mt + /* Skip the VPE if its TC is not halted */ mftc0 t0, CP0_TCHALT beqz t0, 2f @@ -437,6 +442,8 @@ LEAF(mips_cps_boot_vpes) ehb evpe + .set pop + /* Check whether this VPE is meant to be running */ li t0, 1 sll t0, t0, t9 @@ -451,7 +458,7 @@ LEAF(mips_cps_boot_vpes) 1: jr.hb t0 nop -2: .set pop +2: #endif /* CONFIG_MIPS_MT_SMP */ |