Commit a668ce3a authored by Al Viro's avatar Al Viro

um: switch to RAW_COPY_USER

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d597580d
...@@ -13,6 +13,7 @@ config UML ...@@ -13,6 +13,7 @@ config UML
select GENERIC_CLOCKEVENTS select GENERIC_CLOCKEVENTS
select HAVE_GCC_PLUGINS select HAVE_GCC_PLUGINS
select TTY # Needed for line.c select TTY # Needed for line.c
select ARCH_HAS_RAW_COPY_USER
config MMU config MMU
bool bool
......
...@@ -21,8 +21,8 @@ ...@@ -21,8 +21,8 @@
#define __addr_range_nowrap(addr, size) \ #define __addr_range_nowrap(addr, size) \
((unsigned long) (addr) <= ((unsigned long) (addr) + (size))) ((unsigned long) (addr) <= ((unsigned long) (addr) + (size)))
extern long __copy_from_user(void *to, const void __user *from, unsigned long n); extern unsigned long raw_copy_from_user(void *to, const void __user *from, unsigned long n);
extern long __copy_to_user(void __user *to, const void *from, unsigned long n); extern unsigned long raw_copy_to_user(void __user *to, const void *from, unsigned long n);
extern long __strncpy_from_user(char *dst, const char __user *src, long count); extern long __strncpy_from_user(char *dst, const char __user *src, long count);
extern long __strnlen_user(const void __user *str, long len); extern long __strnlen_user(const void __user *str, long len);
extern unsigned long __clear_user(void __user *mem, unsigned long len); extern unsigned long __clear_user(void __user *mem, unsigned long len);
...@@ -33,8 +33,8 @@ static inline int __access_ok(unsigned long addr, unsigned long size); ...@@ -33,8 +33,8 @@ static inline int __access_ok(unsigned long addr, unsigned long size);
#define __clear_user __clear_user #define __clear_user __clear_user
#define __strnlen_user __strnlen_user #define __strnlen_user __strnlen_user
#define __strncpy_from_user __strncpy_from_user #define __strncpy_from_user __strncpy_from_user
#define __copy_to_user_inatomic __copy_to_user #define INLINE_COPY_FROM_USER
#define __copy_from_user_inatomic __copy_from_user #define INLINE_COPY_TO_USER
#include <asm-generic/uaccess.h> #include <asm-generic/uaccess.h>
......
...@@ -139,7 +139,7 @@ static int copy_chunk_from_user(unsigned long from, int len, void *arg) ...@@ -139,7 +139,7 @@ static int copy_chunk_from_user(unsigned long from, int len, void *arg)
return 0; return 0;
} }
long __copy_from_user(void *to, const void __user *from, unsigned long n) unsigned long raw_copy_from_user(void *to, const void __user *from, unsigned long n)
{ {
if (uaccess_kernel()) { if (uaccess_kernel()) {
memcpy(to, (__force void*)from, n); memcpy(to, (__force void*)from, n);
...@@ -148,7 +148,7 @@ long __copy_from_user(void *to, const void __user *from, unsigned long n) ...@@ -148,7 +148,7 @@ long __copy_from_user(void *to, const void __user *from, unsigned long n)
return buffer_op((unsigned long) from, n, 0, copy_chunk_from_user, &to); return buffer_op((unsigned long) from, n, 0, copy_chunk_from_user, &to);
} }
EXPORT_SYMBOL(__copy_from_user); EXPORT_SYMBOL(raw_copy_from_user);
static int copy_chunk_to_user(unsigned long to, int len, void *arg) static int copy_chunk_to_user(unsigned long to, int len, void *arg)
{ {
...@@ -159,7 +159,7 @@ static int copy_chunk_to_user(unsigned long to, int len, void *arg) ...@@ -159,7 +159,7 @@ static int copy_chunk_to_user(unsigned long to, int len, void *arg)
return 0; return 0;
} }
long __copy_to_user(void __user *to, const void *from, unsigned long n) unsigned long raw_copy_to_user(void __user *to, const void *from, unsigned long n)
{ {
if (uaccess_kernel()) { if (uaccess_kernel()) {
memcpy((__force void *) to, from, n); memcpy((__force void *) to, from, n);
...@@ -168,7 +168,7 @@ long __copy_to_user(void __user *to, const void *from, unsigned long n) ...@@ -168,7 +168,7 @@ long __copy_to_user(void __user *to, const void *from, unsigned long n)
return buffer_op((unsigned long) to, n, 1, copy_chunk_to_user, &from); return buffer_op((unsigned long) to, n, 1, copy_chunk_to_user, &from);
} }
EXPORT_SYMBOL(__copy_to_user); EXPORT_SYMBOL(raw_copy_to_user);
static int strncpy_chunk_from_user(unsigned long from, int len, void *arg) static int strncpy_chunk_from_user(unsigned long from, int len, void *arg)
{ {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment