aboutsummaryrefslogtreecommitdiffstats
path: root/arch/avr32/include/asm/uaccess.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/avr32/include/asm/uaccess.h')
-rw-r--r--arch/avr32/include/asm/uaccess.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/avr32/include/asm/uaccess.h b/arch/avr32/include/asm/uaccess.h
index 68cf638faf48..b1ec1fa06463 100644
--- a/arch/avr32/include/asm/uaccess.h
+++ b/arch/avr32/include/asm/uaccess.h
@@ -74,7 +74,7 @@ extern __kernel_size_t __copy_user(void *to, const void *from,
74 74
75extern __kernel_size_t copy_to_user(void __user *to, const void *from, 75extern __kernel_size_t copy_to_user(void __user *to, const void *from,
76 __kernel_size_t n); 76 __kernel_size_t n);
77extern __kernel_size_t copy_from_user(void *to, const void __user *from, 77extern __kernel_size_t ___copy_from_user(void *to, const void __user *from,
78 __kernel_size_t n); 78 __kernel_size_t n);
79 79
80static inline __kernel_size_t __copy_to_user(void __user *to, const void *from, 80static inline __kernel_size_t __copy_to_user(void __user *to, const void *from,
@@ -88,6 +88,15 @@ static inline __kernel_size_t __copy_from_user(void *to,
88{ 88{
89 return __copy_user(to, (const void __force *)from, n); 89 return __copy_user(to, (const void __force *)from, n);
90} 90}
91static inline __kernel_size_t copy_from_user(void *to,
92 const void __user *from,
93 __kernel_size_t n)
94{
95 size_t res = ___copy_from_user(to, from, n);
96 if (unlikely(res))
97 memset(to + (n - res), 0, res);
98 return res;
99}
91 100
92#define __copy_to_user_inatomic __copy_to_user 101#define __copy_to_user_inatomic __copy_to_user
93#define __copy_from_user_inatomic __copy_from_user 102#define __copy_from_user_inatomic __copy_from_user