sh: switch to RAW_COPY_USER
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 21 Mar 2017 18:43:13 +0000 (14:43 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 28 Mar 2017 22:23:59 +0000 (18:23 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/sh/Kconfig
arch/sh/include/asm/uaccess.h

index ee086958b2b21f271443717e19d23a4a85ddf023..c689645eb8b7f3e3dba95275f8450c2229e3d9a3 100644 (file)
@@ -48,6 +48,7 @@ config SUPERH
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_FUTEX_CMPXCHG if FUTEX
        select HAVE_NMI
+       select ARCH_HAS_RAW_COPY_USER
        help
          The SuperH is a RISC processor targeted for use in embedded systems
          and consumer electronics; it was also used in the Sega Dreamcast
index 5cb0c5484efb93f0e95f97ccb28c627d50a018dd..2722b61b228389315c2cf4e74d4058d8dfde7bac 100644 (file)
@@ -108,19 +108,18 @@ extern __must_check long strnlen_user(const char __user *str, long n);
 __kernel_size_t __copy_user(void *to, const void *from, __kernel_size_t n);
 
 static __always_inline unsigned long
-__copy_from_user(void *to, const void __user *from, unsigned long n)
+raw_copy_from_user(void *to, const void __user *from, unsigned long n)
 {
        return __copy_user(to, (__force void *)from, n);
 }
 
 static __always_inline unsigned long __must_check
-__copy_to_user(void __user *to, const void *from, unsigned long n)
+raw_copy_to_user(void __user *to, const void *from, unsigned long n)
 {
        return __copy_user((__force void *)to, from, n);
 }
-
-#define __copy_to_user_inatomic __copy_to_user
-#define __copy_from_user_inatomic __copy_from_user
+#define INLINE_COPY_FROM_USER
+#define INLINE_COPY_TO_USER
 
 /*
  * Clear the area and return remaining number of bytes
@@ -140,33 +139,6 @@ __kernel_size_t __clear_user(void *addr, __kernel_size_t size);
        __cl_size;                                                      \
 })
 
-static inline unsigned long
-copy_from_user(void *to, const void __user *from, unsigned long n)
-{
-       unsigned long __copy_from = (unsigned long) from;
-       __kernel_size_t __copy_size = (__kernel_size_t) n;
-
-       if (__copy_size && __access_ok(__copy_from, __copy_size))
-               __copy_size = __copy_user(to, from, __copy_size);
-
-       if (unlikely(__copy_size))
-               memset(to + (n - __copy_size), 0, __copy_size);
-
-       return __copy_size;
-}
-
-static inline unsigned long
-copy_to_user(void __user *to, const void *from, unsigned long n)
-{
-       unsigned long __copy_to = (unsigned long) to;
-       __kernel_size_t __copy_size = (__kernel_size_t) n;
-
-       if (__copy_size && __access_ok(__copy_to, __copy_size))
-               return __copy_user(to, from, __copy_size);
-
-       return __copy_size;
-}
-
 extern void *set_exception_table_vec(unsigned int vec, void *handler);
 
 static inline void *set_exception_table_evt(unsigned int evt, void *handler)