select HAVE_MOD_ARCH_SPECIFIC
        select MODULES_USE_ELF_RELA
        select HAVE_NMI
+       select ARCH_HAS_RAW_COPY_USER
        help
          AVR32 is a high-performance 32-bit RISC microprocessor core,
          designed for cost-sensitive embedded applications, with particular
 
 extern __kernel_size_t __copy_user(void *to, const void *from,
                                   __kernel_size_t n);
 
-extern __kernel_size_t copy_to_user(void __user *to, const void *from,
-                                   __kernel_size_t n);
-extern __kernel_size_t ___copy_from_user(void *to, const void __user *from,
-                                     __kernel_size_t n);
-
-static inline __kernel_size_t __copy_to_user(void __user *to, const void *from,
-                                            __kernel_size_t n)
+static inline unsigned long
+raw_copy_to_user(void __user *to, const void *from, unsigned long n)
 {
        return __copy_user((void __force *)to, from, n);
 }
-static inline __kernel_size_t __copy_from_user(void *to,
-                                              const void __user *from,
-                                              __kernel_size_t n)
+static inline unsigned long
+raw_copy_from_user(void *to, const void __user *from, unsigned long n)
 {
        return __copy_user(to, (const void __force *)from, n);
 }
-static inline __kernel_size_t copy_from_user(void *to,
-                                              const void __user *from,
-                                              __kernel_size_t n)
-{
-       size_t res = ___copy_from_user(to, from, n);
-       if (unlikely(res))
-               memset(to + (n - res), 0, res);
-       return res;
-}
-
-#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
 
 /*
  * put_user: - Write a simple value into user space.
 
         */
        .text
        .align  1
-       .global ___copy_from_user
-       .type   ___copy_from_user, @function
-___copy_from_user:
-       branch_if_kernel r8, __copy_user
-       ret_if_privileged r8, r11, r10, r10
-       rjmp    __copy_user
-       .size   ___copy_from_user, . - ___copy_from_user
-
-       .global copy_to_user
-       .type   copy_to_user, @function
-copy_to_user:
-       branch_if_kernel r8, __copy_user
-       ret_if_privileged r8, r12, r10, r10
-       .size   copy_to_user, . - copy_to_user
-
        .global __copy_user
        .type   __copy_user, @function
 __copy_user: