[SPARC64]: Sanitize %pstate writes for sun4v.
[linux-2.6.git] / arch / sparc64 / kernel / ktlb.S
index 9b415ab6db6b0e09fb85bf59a221a7f163b6f4f1..c1335432124e3b4e1002a26b0714a2312cddff11 100644 (file)
@@ -60,8 +60,15 @@ kvmap_itlb_load:
        retry
 
 kvmap_itlb_longpath:
-       rdpr    %pstate, %g5
+
+661:   rdpr    %pstate, %g5
        wrpr    %g5, PSTATE_AG | PSTATE_MG, %pstate
+       .section .gl_2insn_patch, "ax"
+       .word   661b
+       nop
+       nop
+       .previous
+
        rdpr    %tpc, %g5
        ba,pt   %xcc, sparc64_realfault_common
         mov    FAULT_CODE_ITLB, %g4
@@ -161,8 +168,15 @@ kvmap_check_obp:
         nop
 
 kvmap_dtlb_longpath:
-       rdpr    %pstate, %g5
+
+661:   rdpr    %pstate, %g5
        wrpr    %g5, PSTATE_AG | PSTATE_MG, %pstate
+       .section .gl_2insn_patch, "ax"
+       .word   661b
+       nop
+       nop
+       .previous
+
        rdpr    %tl, %g4
        cmp     %g4, 1
        mov     TLB_TAG_ACCESS, %g4