diff options
Diffstat (limited to 'arch/sparc64/kernel/etrap.S')
-rw-r--r-- | arch/sparc64/kernel/etrap.S | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/arch/sparc64/kernel/etrap.S b/arch/sparc64/kernel/etrap.S index 52cde3a2623133..50d2af1d98aeeb 100644 --- a/arch/sparc64/kernel/etrap.S +++ b/arch/sparc64/kernel/etrap.S @@ -103,11 +103,8 @@ cplus_etrap_insn_2: wrpr %g0, ETRAP_PSTATE2, %pstate mov %l6, %g6 #ifdef CONFIG_SMP - ldub [%g6 + TI_CPU], %g3 - sethi %hi(__per_cpu_offset), %g2 - or %g2, %lo(__per_cpu_offset), %g2 - sllx %g3, 3, %g3 - ldx [%g2 + %g3], %g5 + mov TSB_REG, %g3 + ldxa [%g3] ASI_IMMU, %g5 #endif jmpl %l2 + 0x4, %g0 ldx [%g6 + TI_TASK], %g4 @@ -259,11 +256,8 @@ cplus_etrap_insn_4: mov %l6, %g6 stx %i7, [%sp + PTREGS_OFF + PT_V9_I7] #ifdef CONFIG_SMP - ldub [%g6 + TI_CPU], %g3 - sethi %hi(__per_cpu_offset), %g2 - or %g2, %lo(__per_cpu_offset), %g2 - sllx %g3, 3, %g3 - ldx [%g2 + %g3], %g5 + mov TSB_REG, %g3 + ldxa [%g3] ASI_IMMU, %g5 #endif ldx [%g6 + TI_TASK], %g4 done |