aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/lib/usercopy_32.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/lib/usercopy_32.c')
-rw-r--r--arch/x86/lib/usercopy_32.c12
1 files changed, 3 insertions, 9 deletions
diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
index 8eedde2a9cac..7393152a252e 100644
--- a/arch/x86/lib/usercopy_32.c
+++ b/arch/x86/lib/usercopy_32.c
@@ -32,9 +32,7 @@ static inline int __movsl_is_ok(unsigned long a1, unsigned long a2, unsigned lon
32#define __do_strncpy_from_user(dst, src, count, res) \ 32#define __do_strncpy_from_user(dst, src, count, res) \
33do { \ 33do { \
34 int __d0, __d1, __d2; \ 34 int __d0, __d1, __d2; \
35 might_sleep(); \ 35 might_fault(); \
36 if (current->mm) \
37 might_lock_read(&current->mm->mmap_sem); \
38 __asm__ __volatile__( \ 36 __asm__ __volatile__( \
39 " testl %1,%1\n" \ 37 " testl %1,%1\n" \
40 " jz 2f\n" \ 38 " jz 2f\n" \
@@ -121,9 +119,7 @@ EXPORT_SYMBOL(strncpy_from_user);
121#define __do_clear_user(addr,size) \ 119#define __do_clear_user(addr,size) \
122do { \ 120do { \
123 int __d0; \ 121 int __d0; \
124 might_sleep(); \ 122 might_fault(); \
125 if (current->mm) \
126 might_lock_read(&current->mm->mmap_sem); \
127 __asm__ __volatile__( \ 123 __asm__ __volatile__( \
128 "0: rep; stosl\n" \ 124 "0: rep; stosl\n" \
129 " movl %2,%0\n" \ 125 " movl %2,%0\n" \
@@ -193,9 +189,7 @@ long strnlen_user(const char __user *s, long n)
193 unsigned long mask = -__addr_ok(s); 189 unsigned long mask = -__addr_ok(s);
194 unsigned long res, tmp; 190 unsigned long res, tmp;
195 191
196 might_sleep(); 192 might_fault();
197 if (current->mm)
198 might_lock_read(&current->mm->mmap_sem);
199 193
200 __asm__ __volatile__( 194 __asm__ __volatile__(
201 " testl %0, %0\n" 195 " testl %0, %0\n"