diff options
Diffstat (limited to 'arch/sparc64/mm/ultra.S')
-rw-r--r-- | arch/sparc64/mm/ultra.S | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/sparc64/mm/ultra.S b/arch/sparc64/mm/ultra.S index 7a0934321010..363770893797 100644 --- a/arch/sparc64/mm/ultra.S +++ b/arch/sparc64/mm/ultra.S | |||
@@ -72,6 +72,7 @@ __flush_tlb_pending: | |||
72 | flush %g6 | 72 | flush %g6 |
73 | retl | 73 | retl |
74 | wrpr %g7, 0x0, %pstate | 74 | wrpr %g7, 0x0, %pstate |
75 | nop | ||
75 | 76 | ||
76 | .align 32 | 77 | .align 32 |
77 | .globl __flush_tlb_kernel_range | 78 | .globl __flush_tlb_kernel_range |
@@ -249,7 +250,7 @@ __cheetah_flush_tlb_mm: /* 15 insns */ | |||
249 | retl | 250 | retl |
250 | wrpr %g7, 0x0, %pstate | 251 | wrpr %g7, 0x0, %pstate |
251 | 252 | ||
252 | __cheetah_flush_tlb_pending: /* 22 insns */ | 253 | __cheetah_flush_tlb_pending: /* 23 insns */ |
253 | /* %o0 = context, %o1 = nr, %o2 = vaddrs[] */ | 254 | /* %o0 = context, %o1 = nr, %o2 = vaddrs[] */ |
254 | rdpr %pstate, %g7 | 255 | rdpr %pstate, %g7 |
255 | sllx %o1, 3, %o1 | 256 | sllx %o1, 3, %o1 |
@@ -266,8 +267,9 @@ __cheetah_flush_tlb_pending: /* 22 insns */ | |||
266 | andn %o3, 1, %o3 | 267 | andn %o3, 1, %o3 |
267 | stxa %g0, [%o3] ASI_IMMU_DEMAP | 268 | stxa %g0, [%o3] ASI_IMMU_DEMAP |
268 | 2: stxa %g0, [%o3] ASI_DMMU_DEMAP | 269 | 2: stxa %g0, [%o3] ASI_DMMU_DEMAP |
270 | membar #Sync | ||
269 | brnz,pt %o1, 1b | 271 | brnz,pt %o1, 1b |
270 | membar #Sync | 272 | nop |
271 | stxa %g2, [%o4] ASI_DMMU | 273 | stxa %g2, [%o4] ASI_DMMU |
272 | flush %g6 | 274 | flush %g6 |
273 | wrpr %g0, 0, %tl | 275 | wrpr %g0, 0, %tl |
@@ -316,7 +318,7 @@ cheetah_patch_cachetlbops: | |||
316 | sethi %hi(__cheetah_flush_tlb_pending), %o1 | 318 | sethi %hi(__cheetah_flush_tlb_pending), %o1 |
317 | or %o1, %lo(__cheetah_flush_tlb_pending), %o1 | 319 | or %o1, %lo(__cheetah_flush_tlb_pending), %o1 |
318 | call cheetah_patch_one | 320 | call cheetah_patch_one |
319 | mov 22, %o2 | 321 | mov 23, %o2 |
320 | 322 | ||
321 | #ifdef DCACHE_ALIASING_POSSIBLE | 323 | #ifdef DCACHE_ALIASING_POSSIBLE |
322 | sethi %hi(__flush_dcache_page), %o0 | 324 | sethi %hi(__flush_dcache_page), %o0 |