aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc64/kernel/tsb.S
diff options
context:
space:
mode:
authorDavid S. Miller <davem@sunset.davemloft.net>2006-02-06 01:27:28 -0500
committerDavid S. Miller <davem@sunset.davemloft.net>2006-03-20 04:11:50 -0500
commit45fec05f805a113372c9a7ff4c653ac749f6921c (patch)
tree36fc99d10656775acb8e9442719447d64ac30a03 /arch/sparc64/kernel/tsb.S
parent314981ac7177a933319e3c071a5cf0a579205e6e (diff)
[SPARC64]: Sanitize %pstate writes for sun4v.
If we're just switching between different alternate global sets, nop it out on sun4v. Also, get rid of all of the alternate global save/restore in the OBP CIF trampoline code. Signed-off-by: David S. Miller <davem@davemloft.net>
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:
82 .globl tsb_do_fault 82 .globl tsb_do_fault
83tsb_do_fault: 83tsb_do_fault:
84 cmp %g3, FAULT_CODE_DTLB 84 cmp %g3, FAULT_CODE_DTLB
85 rdpr %pstate, %g5 85
86661: rdpr %pstate, %g5
87 wrpr %g5, PSTATE_AG | PSTATE_MG, %pstate
88 .section .gl_2insn_patch, "ax"
89 .word 661b
90 nop
91 nop
92 .previous
93
86 bne,pn %xcc, tsb_do_itlb_fault 94 bne,pn %xcc, tsb_do_itlb_fault
87 wrpr %g5, PSTATE_AG | PSTATE_MG, %pstate 95 nop
88 96
89tsb_do_dtlb_fault: 97tsb_do_dtlb_fault:
90 rdpr %tl, %g4 98 rdpr %tl, %g4