]> git.neil.brown.name Git - history.git/commitdiff
[SPARC64]: Remove memcpy Ultra3 PCACHE patching trick.
authorDavid S. Miller <davem@nuts.davemloft.net>
Mon, 9 Aug 2004 07:07:26 +0000 (00:07 -0700)
committerDavid S. Miller <davem@nuts.davemloft.net>
Mon, 9 Aug 2004 07:07:26 +0000 (00:07 -0700)
It could never be enabled safely, so just toss
the code.

Signed-off-by: David S. Miller <davem@redhat.com>
arch/sparc64/lib/U3copy_from_user.S
arch/sparc64/lib/U3copy_to_user.S
arch/sparc64/lib/U3memcpy.S
arch/sparc64/lib/VIScopy.S

index ced14539d2624f686e6f9bae9e1c2355fbb5e888..5976c32bfd822c74eba0c5f5442983403b2fc0fb 100644 (file)
@@ -185,16 +185,7 @@ enter:
 
        .align          64
 begin:
-
-       .globl          U3copy_from_user_nop_1_6
-U3copy_from_user_nop_1_6:
-       ldxa            [%g0] ASI_DCU_CONTROL_REG, %g3
-       sethi           %uhi(DCU_PE), %o3
-       sllx            %o3, 32, %o3
-       or              %g3, %o3, %o3
-       stxa            %o3, [%g0] ASI_DCU_CONTROL_REG  ! Enable P-cache
-       membar          #Sync
-
+       membar          #StoreLoad | #StoreStore | #LoadStore
        prefetcha       [%o1 + 0x000] %asi, #one_read
        prefetcha       [%o1 + 0x040] %asi, #one_read
        andn            %o2, (0x40 - 1), %o4
@@ -280,12 +271,6 @@ loopfini:
        add             %o0, 0x40, %o0
        add             %o1, 0x40, %o1
 
-       .globl          U3copy_from_user_nop_2_3
-U3copy_from_user_nop_2_3:
-       mov             PRIMARY_CONTEXT, %o3
-       stxa            %g0, [%o3] ASI_DMMU             ! Flush P-cache
-       stxa            %g3, [%g0] ASI_DCU_CONTROL_REG  ! Disable P-cache
-
        membar          #Sync
 
        /* Now we copy the (len modulo 64) bytes at the end.
index 55e99ec3952011ec00eed212b759e0a8e64689ea..dd8c42de0236df7def5440fdb8bf50ee7fa8c8ed 100644 (file)
@@ -204,16 +204,7 @@ enter:
 
        .align          64
 begin:
-
-       .globl          U3copy_to_user_nop_1_6
-U3copy_to_user_nop_1_6:
-       ldxa            [%g0] ASI_DCU_CONTROL_REG, %g3
-       sethi           %uhi(DCU_PE), %o3
-       sllx            %o3, 32, %o3
-       or              %g3, %o3, %o3
-       stxa            %o3, [%g0] ASI_DCU_CONTROL_REG  ! Enable P-cache
-       membar          #Sync
-
+       membar          #StoreLoad | #StoreStore | #LoadStore
        prefetch        [%o1 + 0x000], #one_read
        prefetch        [%o1 + 0x040], #one_read
        andn            %o2, (0x40 - 1), %o4
@@ -299,12 +290,6 @@ loopfini:
        add             %o0, 0x40, %o0
        add             %o1, 0x40, %o1
 
-       .globl          U3copy_to_user_nop_2_3
-U3copy_to_user_nop_2_3:
-       mov             PRIMARY_CONTEXT, %o3
-       stxa            %g0, [%o3] ASI_DMMU             ! Flush P-cache
-       stxa            %g3, [%g0] ASI_DCU_CONTROL_REG  ! Disable P-cache
-
        membar          #Sync
 
        /* Now we copy the (len modulo 64) bytes at the end.
index 8804f17ed1dc729990cf9b1bf9a546f4ad819381..c04f176b9ca9ffcf2b6344930fc2973aac8794f7 100644 (file)
@@ -90,16 +90,7 @@ enter:
 
        .align          64
 begin:
-#ifdef __KERNEL__
-       .globl          U3memcpy_nop_1_6
-U3memcpy_nop_1_6:
-       ldxa            [%g0] ASI_DCU_CONTROL_REG, %g3
-       sethi           %uhi(DCU_PE), %o3
-       sllx            %o3, 32, %o3
-       or              %g3, %o3, %o3
-       stxa            %o3, [%g0] ASI_DCU_CONTROL_REG  ! Enable P-cache
-       membar          #Sync
-#endif
+       membar          #StoreLoad | #StoreStore | #LoadStore
        prefetch        [%o1 + 0x000], #one_read
        prefetch        [%o1 + 0x040], #one_read
        andn            %o2, (0x40 - 1), %o4
@@ -184,13 +175,6 @@ loopfini:
        stda            %f16, [%o0] ASI_BLK_P
        add             %o0, 0x40, %o0
        add             %o1, 0x40, %o1
-#ifdef __KERNEL__
-       .globl          U3memcpy_nop_2_3
-U3memcpy_nop_2_3:
-       mov             PRIMARY_CONTEXT, %o3
-       stxa            %g0, [%o3] ASI_DMMU             ! Flush P-cache
-       stxa            %g3, [%g0] ASI_DCU_CONTROL_REG  ! Disable P-cache
-#endif
        membar          #Sync
 
        /* Now we copy the (len modulo 64) bytes at the end.
index 79052cdf8ab3749a1e5e0d884cd15e9f5664ae11..2c90b25668c9e7afd5973610f9b6d318a9ec02bf 100644 (file)
@@ -360,28 +360,6 @@ bcopy:             or              %o0, 0, %g3                     ! IEU0  Group
        or      %g3, %lo(NOP), %g3; \
        stw     %g3, [%g2 + 0x4]; \
        flush   %g2;
-#define ULTRA3_PCACHE_DO_NOP(symbol)   \
-       sethi   %hi(symbol##_nop_1_6), %g1; \
-       or      %g1, %lo(symbol##_nop_1_6), %g1; \
-       sethi   %hi(NOP), %g2; \
-       stw     %g2, [%g1 + 0x00]; \
-       stw     %g2, [%g1 + 0x04]; \
-       flush   %g1 + 0x00; \
-       stw     %g2, [%g1 + 0x08]; \
-       stw     %g2, [%g1 + 0x0c]; \
-       flush   %g1 + 0x08; \
-       stw     %g2, [%g1 + 0x10]; \
-       stw     %g2, [%g1 + 0x04]; \
-       flush   %g1 + 0x10; \
-       sethi   %hi(symbol##_nop_2_3), %g1; \
-       or      %g1, %lo(symbol##_nop_2_3), %g1; \
-       stw     %g2, [%g1 + 0x00]; \
-       stw     %g2, [%g1 + 0x04]; \
-       flush   %g1 + 0x00; \
-       stw     %g2, [%g1 + 0x08]; \
-       flush   %g1 + 0x08;
-
-#include <asm/dcu.h>
 
        .globl  cheetah_patch_copyops
 cheetah_patch_copyops:
@@ -389,22 +367,6 @@ cheetah_patch_copyops:
        ULTRA3_DO_PATCH(__copy_from_user, U3copy_from_user)
        ULTRA3_DO_PATCH(__copy_to_user, U3copy_to_user)
        ULTRA3_DO_PATCH(__copy_in_user, U3copy_in_user)
-#if 0 /* Causes data corruption, nop out the optimization
-       * for now -DaveM
-       */
-       ldxa                    [%g0] ASI_DCU_CONTROL_REG, %g3
-       sethi                   %uhi(DCU_PE), %o3
-       sllx                    %o3, 32, %o3
-       andcc                   %g3, %o3, %g0
-       be,pn                   %xcc, pcache_disabled
-        nop
-#endif
-       ULTRA3_PCACHE_DO_NOP(U3memcpy)
-       ULTRA3_PCACHE_DO_NOP(U3copy_from_user)
-       ULTRA3_PCACHE_DO_NOP(U3copy_to_user)
-#if 0
-pcache_disabled:
-#endif
        retl
         nop
 #undef BRANCH_ALWAYS