[SPARC]: Don't zero out tail during copy_from_user_inatomic().
authorDavid S. Miller <davem@sunset.davemloft.net>
Thu, 28 Sep 2006 02:43:02 +0000 (19:43 -0700)
committerDavid S. Miller <davem@sunset.davemloft.net>
Fri, 29 Sep 2006 23:12:41 +0000 (16:12 -0700)
Actually, since we use the same code for all the copying
types in and out of userspace, we check at runtime whether
preemption is disabled.

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/lib/copy_user.S

index 577505b692ae0643b046223187d071de9106f618..ef095b6c43b157dc7ad076b641893b59e25775de 100644 (file)
@@ -14,6 +14,7 @@
 #include <asm/ptrace.h>
 #include <asm/asmmacro.h>
 #include <asm/page.h>
+#include <asm/thread_info.h>
 
 /* Work around cpp -rob */
 #define ALLOC #alloc
@@ -366,6 +367,9 @@ fixupretl:
        blu     1f
         cmp    %o1, %g1
        bgeu    1f
+        ld     [%g6 + TI_PREEMPT], %g1
+       cmp     %g1, 0
+       bne     1f
         nop
        save    %sp, -64, %sp
        mov     %i0, %o0