diff options
author | David S. Miller <davem@sunset.davemloft.net> | 2006-09-27 22:43:02 -0400 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2006-09-29 19:12:41 -0400 |
commit | 3a1d5c84ed2fa4034f86e3b204129c139471516e (patch) | |
tree | 621b55281a61bdac15efe36ea00dd30fdba49cb5 /arch/sparc | |
parent | d6c641026dec68acfb4b0baa98aad960e963ed97 (diff) |
[SPARC]: Don't zero out tail during copy_from_user_inatomic().
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>
Diffstat (limited to 'arch/sparc')
-rw-r--r-- | arch/sparc/lib/copy_user.S | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/sparc/lib/copy_user.S b/arch/sparc/lib/copy_user.S index 577505b692ae..ef095b6c43b1 100644 --- a/arch/sparc/lib/copy_user.S +++ b/arch/sparc/lib/copy_user.S | |||
@@ -14,6 +14,7 @@ | |||
14 | #include <asm/ptrace.h> | 14 | #include <asm/ptrace.h> |
15 | #include <asm/asmmacro.h> | 15 | #include <asm/asmmacro.h> |
16 | #include <asm/page.h> | 16 | #include <asm/page.h> |
17 | #include <asm/thread_info.h> | ||
17 | 18 | ||
18 | /* Work around cpp -rob */ | 19 | /* Work around cpp -rob */ |
19 | #define ALLOC #alloc | 20 | #define ALLOC #alloc |
@@ -366,6 +367,9 @@ fixupretl: | |||
366 | blu 1f | 367 | blu 1f |
367 | cmp %o1, %g1 | 368 | cmp %o1, %g1 |
368 | bgeu 1f | 369 | bgeu 1f |
370 | ld [%g6 + TI_PREEMPT], %g1 | ||
371 | cmp %g1, 0 | ||
372 | bne 1f | ||
369 | nop | 373 | nop |
370 | save %sp, -64, %sp | 374 | save %sp, -64, %sp |
371 | mov %i0, %o0 | 375 | mov %i0, %o0 |