Loading arch/sparc/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ config SPARC select HAVE_ARCH_HARDENED_USERCOPY select PROVE_LOCKING_SMALL if PROVE_LOCKING select ARCH_WANT_RELAX_ORDER select ARCH_HAS_RAW_COPY_USER config SPARC32 def_bool !64BIT Loading arch/sparc/include/asm/uaccess_32.h +4 −25 Original line number Diff line number Diff line Loading @@ -235,39 +235,18 @@ int __get_user_bad(void); unsigned long __copy_user(void __user *to, const void __user *from, unsigned long size); static inline unsigned long copy_to_user(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) { if (n && __access_ok((unsigned long) to, n)) { check_object_size(from, n, true); return __copy_user(to, (__force void __user *) from, n); } else return n; } static inline unsigned long __copy_to_user(void __user *to, const void *from, unsigned long n) { check_object_size(from, n, true); return __copy_user(to, (__force void __user *) from, n); } static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n) { if (n && __access_ok((unsigned long) from, n)) { check_object_size(to, n, false); return __copy_user((__force void __user *) to, from, n); } else { memset(to, 0, n); return n; } } static inline unsigned long __copy_from_user(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) { return __copy_user((__force void __user *) 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 static inline unsigned long __clear_user(void __user *addr, unsigned long size) { Loading arch/sparc/include/asm/uaccess_64.h +5 −28 Original line number Diff line number Diff line Loading @@ -176,39 +176,19 @@ __asm__ __volatile__( \ int __get_user_bad(void); unsigned long __must_check ___copy_from_user(void *to, unsigned long __must_check raw_copy_from_user(void *to, const void __user *from, unsigned long size); static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long size) { check_object_size(to, size, false); return ___copy_from_user(to, from, size); } #define __copy_from_user copy_from_user unsigned long __must_check ___copy_to_user(void __user *to, unsigned long __must_check raw_copy_to_user(void __user *to, const void *from, unsigned long size); static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long size) { check_object_size(from, size, true); #define INLINE_COPY_FROM_USER #define INLINE_COPY_TO_USER return ___copy_to_user(to, from, size); } #define __copy_to_user copy_to_user unsigned long __must_check ___copy_in_user(void __user *to, unsigned long __must_check raw_copy_in_user(void __user *to, const void __user *from, unsigned long size); static inline unsigned long __must_check copy_in_user(void __user *to, void __user *from, unsigned long size) { return ___copy_in_user(to, from, size); } #define __copy_in_user copy_in_user unsigned long __must_check __clear_user(void __user *, unsigned long); Loading @@ -217,9 +197,6 @@ unsigned long __must_check __clear_user(void __user *, unsigned long); __must_check long strlen_user(const char __user *str); __must_check long strnlen_user(const char __user *str, long n); #define __copy_to_user_inatomic __copy_to_user #define __copy_from_user_inatomic __copy_from_user struct pt_regs; unsigned long compute_effective_address(struct pt_regs *, unsigned int insn, Loading arch/sparc/lib/GENcopy_from_user.S +1 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ #define PREAMBLE \ rd %asi, %g1; \ cmp %g1, ASI_AIUS; \ bne,pn %icc, ___copy_in_user; \ bne,pn %icc, raw_copy_in_user; \ nop #endif Loading arch/sparc/lib/GENcopy_to_user.S +1 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ #define PREAMBLE \ rd %asi, %g1; \ cmp %g1, ASI_AIUS; \ bne,pn %icc, ___copy_in_user; \ bne,pn %icc, raw_copy_in_user; \ nop #endif Loading Loading
arch/sparc/Kconfig +1 −0 Original line number Diff line number Diff line Loading @@ -45,6 +45,7 @@ config SPARC select HAVE_ARCH_HARDENED_USERCOPY select PROVE_LOCKING_SMALL if PROVE_LOCKING select ARCH_WANT_RELAX_ORDER select ARCH_HAS_RAW_COPY_USER config SPARC32 def_bool !64BIT Loading
arch/sparc/include/asm/uaccess_32.h +4 −25 Original line number Diff line number Diff line Loading @@ -235,39 +235,18 @@ int __get_user_bad(void); unsigned long __copy_user(void __user *to, const void __user *from, unsigned long size); static inline unsigned long copy_to_user(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) { if (n && __access_ok((unsigned long) to, n)) { check_object_size(from, n, true); return __copy_user(to, (__force void __user *) from, n); } else return n; } static inline unsigned long __copy_to_user(void __user *to, const void *from, unsigned long n) { check_object_size(from, n, true); return __copy_user(to, (__force void __user *) from, n); } static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n) { if (n && __access_ok((unsigned long) from, n)) { check_object_size(to, n, false); return __copy_user((__force void __user *) to, from, n); } else { memset(to, 0, n); return n; } } static inline unsigned long __copy_from_user(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) { return __copy_user((__force void __user *) 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 static inline unsigned long __clear_user(void __user *addr, unsigned long size) { Loading
arch/sparc/include/asm/uaccess_64.h +5 −28 Original line number Diff line number Diff line Loading @@ -176,39 +176,19 @@ __asm__ __volatile__( \ int __get_user_bad(void); unsigned long __must_check ___copy_from_user(void *to, unsigned long __must_check raw_copy_from_user(void *to, const void __user *from, unsigned long size); static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long size) { check_object_size(to, size, false); return ___copy_from_user(to, from, size); } #define __copy_from_user copy_from_user unsigned long __must_check ___copy_to_user(void __user *to, unsigned long __must_check raw_copy_to_user(void __user *to, const void *from, unsigned long size); static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long size) { check_object_size(from, size, true); #define INLINE_COPY_FROM_USER #define INLINE_COPY_TO_USER return ___copy_to_user(to, from, size); } #define __copy_to_user copy_to_user unsigned long __must_check ___copy_in_user(void __user *to, unsigned long __must_check raw_copy_in_user(void __user *to, const void __user *from, unsigned long size); static inline unsigned long __must_check copy_in_user(void __user *to, void __user *from, unsigned long size) { return ___copy_in_user(to, from, size); } #define __copy_in_user copy_in_user unsigned long __must_check __clear_user(void __user *, unsigned long); Loading @@ -217,9 +197,6 @@ unsigned long __must_check __clear_user(void __user *, unsigned long); __must_check long strlen_user(const char __user *str); __must_check long strnlen_user(const char __user *str, long n); #define __copy_to_user_inatomic __copy_to_user #define __copy_from_user_inatomic __copy_from_user struct pt_regs; unsigned long compute_effective_address(struct pt_regs *, unsigned int insn, Loading
arch/sparc/lib/GENcopy_from_user.S +1 −1 Original line number Diff line number Diff line Loading @@ -23,7 +23,7 @@ #define PREAMBLE \ rd %asi, %g1; \ cmp %g1, ASI_AIUS; \ bne,pn %icc, ___copy_in_user; \ bne,pn %icc, raw_copy_in_user; \ nop #endif Loading
arch/sparc/lib/GENcopy_to_user.S +1 −1 Original line number Diff line number Diff line Loading @@ -27,7 +27,7 @@ #define PREAMBLE \ rd %asi, %g1; \ cmp %g1, ASI_AIUS; \ bne,pn %icc, ___copy_in_user; \ bne,pn %icc, raw_copy_in_user; \ nop #endif Loading