diff options
Diffstat (limited to 'arch/sparc64/kernel/ktlb.S')
-rw-r--r-- | arch/sparc64/kernel/ktlb.S | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/arch/sparc64/kernel/ktlb.S b/arch/sparc64/kernel/ktlb.S index 47dfd45971e8..ac29da915d09 100644 --- a/arch/sparc64/kernel/ktlb.S +++ b/arch/sparc64/kernel/ktlb.S | |||
@@ -52,8 +52,10 @@ kvmap_itlb_vmalloc_addr: | |||
52 | 52 | ||
53 | /* Load and check PTE. */ | 53 | /* Load and check PTE. */ |
54 | ldxa [%g5] ASI_PHYS_USE_EC, %g5 | 54 | ldxa [%g5] ASI_PHYS_USE_EC, %g5 |
55 | mov 1, %g7 | ||
56 | sllx %g7, TSB_TAG_INVALID_BIT, %g7 | ||
55 | brgez,a,pn %g5, kvmap_itlb_longpath | 57 | brgez,a,pn %g5, kvmap_itlb_longpath |
56 | KTSB_STORE(%g1, %g0) | 58 | KTSB_STORE(%g1, %g7) |
57 | 59 | ||
58 | KTSB_WRITE(%g1, %g5, %g6) | 60 | KTSB_WRITE(%g1, %g5, %g6) |
59 | 61 | ||
@@ -146,8 +148,10 @@ kvmap_dtlb_vmalloc_addr: | |||
146 | 148 | ||
147 | /* Load and check PTE. */ | 149 | /* Load and check PTE. */ |
148 | ldxa [%g5] ASI_PHYS_USE_EC, %g5 | 150 | ldxa [%g5] ASI_PHYS_USE_EC, %g5 |
151 | mov 1, %g7 | ||
152 | sllx %g7, TSB_TAG_INVALID_BIT, %g7 | ||
149 | brgez,a,pn %g5, kvmap_dtlb_longpath | 153 | brgez,a,pn %g5, kvmap_dtlb_longpath |
150 | KTSB_STORE(%g1, %g0) | 154 | KTSB_STORE(%g1, %g7) |
151 | 155 | ||
152 | KTSB_WRITE(%g1, %g5, %g6) | 156 | KTSB_WRITE(%g1, %g5, %g6) |
153 | 157 | ||
@@ -215,8 +219,8 @@ kvmap_dtlb_longpath: | |||
215 | wrpr %g5, PSTATE_AG | PSTATE_MG, %pstate | 219 | wrpr %g5, PSTATE_AG | PSTATE_MG, %pstate |
216 | .section .sun4v_2insn_patch, "ax" | 220 | .section .sun4v_2insn_patch, "ax" |
217 | .word 661b | 221 | .word 661b |
218 | nop | 222 | SET_GL(1) |
219 | nop | 223 | ldxa [%g0] ASI_SCRATCHPAD, %g5 |
220 | .previous | 224 | .previous |
221 | 225 | ||
222 | rdpr %tl, %g3 | 226 | rdpr %tl, %g3 |
@@ -226,7 +230,7 @@ kvmap_dtlb_longpath: | |||
226 | ldxa [%g4] ASI_DMMU, %g5 | 230 | ldxa [%g4] ASI_DMMU, %g5 |
227 | .section .sun4v_2insn_patch, "ax" | 231 | .section .sun4v_2insn_patch, "ax" |
228 | .word 661b | 232 | .word 661b |
229 | mov %g4, %g5 | 233 | ldx [%g5 + HV_FAULT_D_ADDR_OFFSET], %g5 |
230 | nop | 234 | nop |
231 | .previous | 235 | .previous |
232 | 236 | ||