]> Pileus Git - ~andy/linux/blobdiff - arch/sparc64/lib/NGpage.S
[SPARC64]: Fix sparse warnings in arch/sparc64/kernel/irq.c
[~andy/linux] / arch / sparc64 / lib / NGpage.S
index 0e6152c28b013ffd092ec1de56b6f0b3b0757681..428920de05baeb4f87b80a93d3a09480ef19ffec 100644 (file)
@@ -41,9 +41,11 @@ NGcopy_user_page:    /* %o0=dest, %o1=src, %o2=vaddr */
        subcc           %g7, 64, %g7
        bne,pt          %xcc, 1b
         add            %o0, 32, %o0
+       membar          #Sync
        retl
         nop
 
+       .globl          NGclear_page, NGclear_user_page
 NGclear_page:          /* %o0=dest */
 NGclear_user_page:     /* %o0=dest, %o1=vaddr */
        mov             8, %g1
@@ -63,6 +65,7 @@ NGclear_user_page:    /* %o0=dest, %o1=vaddr */
        subcc           %g7, 64, %g7
        bne,pt          %xcc, 1b
         add            %o0, 32, %o0
+       membar          #Sync
        retl
         nop
 
@@ -75,7 +78,8 @@ NGclear_user_page:    /* %o0=dest, %o1=vaddr */
        or      %g2, %lo(OLD), %g2; \
        sub     %g1, %g2, %g1; \
        sethi   %hi(BRANCH_ALWAYS), %g3; \
-       srl     %g1, 2, %g1; \
+       sll     %g1, 11, %g1; \
+       srl     %g1, 11 + 2, %g1; \
        or      %g3, %lo(BRANCH_ALWAYS), %g3; \
        or      %g3, %g1, %g3; \
        stw     %g3, [%g2]; \