···9696 select PERF_USE_VMALLOC9797 select RTC_LIB9898 select SYS_SUPPORTS_APM_EMULATION9999+ select ARCH_HAS_RAW_COPY_USER99100 # Above selects are sorted alphabetically; please add new ones100101 # according to that. Thanks.101102 help
+16-48
arch/arm/include/asm/uaccess.h
···455455arm_copy_from_user(void *to, const void __user *from, unsigned long n);456456457457static inline unsigned long __must_check458458-__arch_copy_from_user(void *to, const void __user *from, unsigned long n)458458+raw_copy_from_user(void *to, const void __user *from, unsigned long n)459459{460460 unsigned int __ua_flags;461461···471471__copy_to_user_std(void __user *to, const void *from, unsigned long n);472472473473static inline unsigned long __must_check474474-__arch_copy_to_user(void __user *to, const void *from, unsigned long n)474474+raw_copy_to_user(void __user *to, const void *from, unsigned long n)475475{476476#ifndef CONFIG_UACCESS_WITH_MEMCPY477477 unsigned int __ua_flags;···499499}500500501501#else502502-#define __arch_copy_from_user(to, from, n) \503503- (memcpy(to, (void __force *)from, n), 0)504504-#define __arch_copy_to_user(to, from, n) \505505- (memcpy((void __force *)to, from, n), 0)502502+static inline unsigned long503503+raw_copy_from_user(void *to, const void __user *from, unsigned long n)504504+{505505+ memcpy(to, (const void __force *)from, n);506506+ return 0;507507+}508508+static inline unsigned long509509+raw_copy_to_user(void __user *to, const void *from, unsigned long n)510510+{511511+ memcpy((void __force *)to, from, n);512512+ return 0;513513+}506514#define __clear_user(addr, n) (memset((void __force *)addr, 0, n), 0)507515#endif508508-509509-static inline unsigned long __must_check510510-__copy_from_user(void *to, const void __user *from, unsigned long n)511511-{512512- check_object_size(to, n, false);513513- return __arch_copy_from_user(to, from, n);514514-}515515-516516-static inline unsigned long __must_check517517-copy_from_user(void *to, const void __user *from, unsigned long n)518518-{519519- unsigned long res = n;520520-521521- check_object_size(to, n, false);522522-523523- if (likely(access_ok(VERIFY_READ, from, n)))524524- res = __arch_copy_from_user(to, from, n);525525- if (unlikely(res))526526- memset(to + (n - res), 0, res);527527- return res;528528-}529529-530530-static inline unsigned long __must_check531531-__copy_to_user(void __user *to, const void *from, unsigned long n)532532-{533533- check_object_size(from, n, true);534534-535535- return __arch_copy_to_user(to, from, n);536536-}537537-538538-static inline unsigned long __must_check539539-copy_to_user(void __user *to, const void *from, unsigned long n)540540-{541541- check_object_size(from, n, true);542542-543543- if (access_ok(VERIFY_WRITE, to, n))544544- n = __arch_copy_to_user(to, from, n);545545- return n;546546-}547547-548548-#define __copy_to_user_inatomic __copy_to_user549549-#define __copy_from_user_inatomic __copy_from_user516516+#define INLINE_COPY_TO_USER517517+#define INLINE_COPY_FROM_USER550518551519static inline unsigned long __must_check clear_user(void __user *to, unsigned long n)552520{