aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/sparc64/kernel/head.S3
-rw-r--r--arch/sparc64/lib/copy_page.S13
2 files changed, 14 insertions, 2 deletions
diff --git a/arch/sparc64/kernel/head.S b/arch/sparc64/kernel/head.S
index 8104a56ca2d8..1fa06c4e3bdb 100644
--- a/arch/sparc64/kernel/head.S
+++ b/arch/sparc64/kernel/head.S
@@ -538,11 +538,12 @@ cheetah_tlb_fixup:
538 nop 538 nop
539 call cheetah_plus_patch_winfixup 539 call cheetah_plus_patch_winfixup
540 nop 540 nop
541
542 541
5432: /* Patch copy/page operations to cheetah optimized versions. */ 5422: /* Patch copy/page operations to cheetah optimized versions. */
544 call cheetah_patch_copyops 543 call cheetah_patch_copyops
545 nop 544 nop
545 call cheetah_patch_copy_page
546 nop
546 call cheetah_patch_cachetlbops 547 call cheetah_patch_cachetlbops
547 nop 548 nop
548 549
diff --git a/arch/sparc64/lib/copy_page.S b/arch/sparc64/lib/copy_page.S
index 23ebf2c970b7..feebb14fd27a 100644
--- a/arch/sparc64/lib/copy_page.S
+++ b/arch/sparc64/lib/copy_page.S
@@ -87,7 +87,7 @@ copy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */
87 membar #Sync 87 membar #Sync
88 wrpr %o2, 0x0, %pstate 88 wrpr %o2, 0x0, %pstate
89 89
90 BRANCH_IF_ANY_CHEETAH(g3,o2,1f) 90cheetah_copy_page_insn:
91 ba,pt %xcc, 9f 91 ba,pt %xcc, 9f
92 nop 92 nop
93 93
@@ -240,3 +240,14 @@ copy_user_page: /* %o0=dest, %o1=src, %o2=vaddr */
240 stw %o4, [%g6 + TI_PRE_COUNT] 240 stw %o4, [%g6 + TI_PRE_COUNT]
241 241
242 .size copy_user_page, .-copy_user_page 242 .size copy_user_page, .-copy_user_page
243
244 .globl cheetah_patch_copy_page
245cheetah_patch_copy_page:
246 sethi %hi(0x01000000), %o1 ! NOP
247 sethi %hi(cheetah_copy_page_insn), %o0
248 or %o0, %lo(cheetah_copy_page_insn), %o0
249 stw %o1, [%o0]
250 membar #StoreStore
251 flush %o0
252 retl
253 nop