summaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/tsb.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sparc64/kernel/tsb.S')
-rw-r--r--arch/sparc64/kernel/tsb.S12
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/sparc64/kernel/tsb.S b/arch/sparc64/kernel/tsb.S
index 3b45db98005a..96e63168d8b2 100644
--- a/arch/sparc64/kernel/tsb.S
+++ b/arch/sparc64/kernel/tsb.S
@@ -82,9 +82,17 @@ tsb_itlb_load:
.globl tsb_do_fault
tsb_do_fault:
cmp %g3, FAULT_CODE_DTLB
- rdpr %pstate, %g5
+
+661: rdpr %pstate, %g5
+ wrpr %g5, PSTATE_AG | PSTATE_MG, %pstate
+ .section .gl_2insn_patch, "ax"
+ .word 661b
+ nop
+ nop
+ .previous
+
bne,pn %xcc, tsb_do_itlb_fault
- wrpr %g5, PSTATE_AG | PSTATE_MG, %pstate
+ nop
tsb_do_dtlb_fault:
rdpr %tl, %g4