[SPARC64]: Kill BRANCH_IF_ANY_CHEETAH() from copy page.
authorDavid S. Miller <davem@davemloft.net>
Tue, 30 Aug 2005 18:26:15 +0000 (11:26 -0700)
committerDavid S. Miller <davem@davemloft.net>
Tue, 30 Aug 2005 18:26:15 +0000 (11:26 -0700)
Just patch the branch at boot time instead.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc64/kernel/head.S
arch/sparc64/lib/copy_page.S

index 8104a56..1fa06c4 100644 (file)
@@ -538,11 +538,12 @@ cheetah_tlb_fixup:
         nop
        call    cheetah_plus_patch_winfixup
         nop
-       
 
 2:     /* Patch copy/page operations to cheetah optimized versions. */
        call    cheetah_patch_copyops
         nop
+       call    cheetah_patch_copy_page
+        nop
        call    cheetah_patch_cachetlbops
         nop
 
index 23ebf2c..feebb14 100644 (file)
@@ -87,7 +87,7 @@ copy_user_page:               /* %o0=dest, %o1=src, %o2=vaddr */
        membar          #Sync
        wrpr            %o2, 0x0, %pstate
 
-       BRANCH_IF_ANY_CHEETAH(g3,o2,1f)
+cheetah_copy_page_insn:
        ba,pt           %xcc, 9f
         nop
 
@@ -240,3 +240,14 @@ copy_user_page:            /* %o0=dest, %o1=src, %o2=vaddr */
         stw            %o4, [%g6 + TI_PRE_COUNT]
 
        .size           copy_user_page, .-copy_user_page
+
+       .globl          cheetah_patch_copy_page
+cheetah_patch_copy_page:
+       sethi           %hi(0x01000000), %o1    ! NOP
+       sethi           %hi(cheetah_copy_page_insn), %o0
+       or              %o0, %lo(cheetah_copy_page_insn), %o0
+       stw             %o1, [%o0]
+       membar          #StoreStore
+       flush           %o0
+       retl
+        nop