aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/etrap.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64/kernel/etrap.S')
-rw-r--r--arch/sparc64/kernel/etrap.S14
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