diff options
author | David S. Miller <davem@davemloft.net> | 2005-08-30 14:26:15 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-08-30 14:26:15 -0400 |
commit | dbd2fdf549317de00e0b5ea465de5372039b7ee8 (patch) | |
tree | 67fad29313468b3f232264e98b508d9f3bd6a4de /arch/sparc64 | |
parent | d7ce78fd9a51ca0d6b9a8cf35baef884ddb9a95c (diff) |
[SPARC64]: Kill BRANCH_IF_ANY_CHEETAH() from copy page.
Just patch the branch at boot time instead.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc64')
-rw-r--r-- | arch/sparc64/kernel/head.S | 3 | ||||
-rw-r--r-- | arch/sparc64/lib/copy_page.S | 13 |
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 | ||
543 | 2: /* Patch copy/page operations to cheetah optimized versions. */ | 542 | 2: /* 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) | 90 | cheetah_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 | ||
245 | cheetah_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 | ||