]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
mn10300: switch to RAW_COPY_USER
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 21 Mar 2017 16:06:57 +0000 (12:06 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Tue, 28 Mar 2017 22:23:49 +0000 (18:23 -0400)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/mn10300/Kconfig
arch/mn10300/include/asm/uaccess.h
arch/mn10300/kernel/mn10300_ksyms.c
arch/mn10300/lib/usercopy.c

index 38e3494bfb63ad0e620f6de3a93190f1e19944ca..a96f3dcb01198ff377ed15d84516b8fff265067f 100644 (file)
@@ -16,6 +16,7 @@ config MN10300
        select OLD_SIGACTION
        select HAVE_DEBUG_STACKOVERFLOW
        select ARCH_NO_COHERENT_DMA_MMAP
+       select ARCH_HAS_RAW_COPY_USER
 
 config AM33_2
        def_bool n
index 1c35be3d8fef362a3cc54daac06189e003a74210..c6966474827f114c99f1eb2b90d40fd3980e3e15 100644 (file)
@@ -275,49 +275,20 @@ do {                                                                      \
        }                                                               \
 } while (0)
 
-/* We let the __ versions of copy_from/to_user inline, because they're often
- * used in fast paths and have only a small space overhead.
- */
-static inline
-unsigned long __copy_from_user_inatomic(void *to, const void __user *from,
-                                              unsigned long n)
+static inline unsigned long
+raw_copy_from_user(void *to, const void __user *from, unsigned long n)
 {
        __copy_user(to, from, n);
        return n;
 }
 
-static inline
-unsigned long __copy_to_user_inatomic(void __user *to, const void *from,
-                                            unsigned long n)
+static inline unsigned long
+raw_copy_to_user(void __user *to, const void *from, unsigned long n)
 {
        __copy_user(to, from, n);
        return n;
 }
 
-
-extern unsigned long __generic_copy_to_user(void __user *, const void *,
-                                           unsigned long);
-extern unsigned long __generic_copy_from_user(void *, const void __user *,
-                                             unsigned long);
-
-static inline unsigned long __copy_to_user(void __user *to, const void *from,
-                                               unsigned long n)
-{
-       might_fault();
-       return __copy_to_user_inatomic(to, from, n);
-}
-
-static inline unsigned long __copy_from_user(void *to, const void __user *from,
-                                               unsigned long n)
-{
-       might_fault();
-       return __copy_from_user_inatomic(to, from, n);
-}
-
-
-#define copy_to_user(to, from, n)   __generic_copy_to_user((to), (from), (n))
-#define copy_from_user(to, from, n) __generic_copy_from_user((to), (from), (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 char __user *str, long n);
index ec6c4f8f93a63072302803736db9ac4946547d53..5e9f919635f05b56549365f2665bd7b4c0cf8d99 100644 (file)
@@ -26,8 +26,6 @@ EXPORT_SYMBOL(strncpy_from_user);
 EXPORT_SYMBOL(__strncpy_from_user);
 EXPORT_SYMBOL(clear_user);
 EXPORT_SYMBOL(__clear_user);
-EXPORT_SYMBOL(__generic_copy_from_user);
-EXPORT_SYMBOL(__generic_copy_to_user);
 EXPORT_SYMBOL(strnlen_user);
 
 extern u64 __ashrdi3(u64, unsigned);
index b48af8d4f38d267da6f515f7a9e3bb347c43f94b..cece1799cc323970828725e8893d438b2b5701f3 100644 (file)
  */
 #include <linux/uaccess.h>
 
-unsigned long
-__generic_copy_to_user(void *to, const void *from, unsigned long n)
-{
-       if (access_ok(VERIFY_WRITE, to, n))
-               __copy_user(to, from, n);
-       return n;
-}
-
-unsigned long
-__generic_copy_from_user(void *to, const void *from, unsigned long n)
-{
-       unsigned long res = n;
-       if (access_ok(VERIFY_READ, from, res))
-               __copy_user(to, from, res);
-       if (unlikely(res))
-               memset(to + n - res, 0, res);
-       return res;
-}
-
 /*
  * Copy a null terminated string from userspace.
  */