Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

unicore32: get rid of zeroing and switch to RAW_COPY_USER

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Al Viro 2ef59f28 d597580d

+16 -17
+1
arch/unicore32/Kconfig
··· 18 18 select ARCH_WANT_FRAME_POINTERS 19 19 select GENERIC_IOMAP 20 20 select MODULES_USE_ELF_REL 21 + select ARCH_HAS_RAW_COPY_USER 21 22 help 22 23 UniCore-32 is 32-bit Instruction Set Architecture, 23 24 including a series of low-power-consumption RISC chip
+4 -2
arch/unicore32/include/asm/uaccess.h
··· 24 24 #define __access_ok(addr, size) (__kernel_ok || __user_ok((addr), (size))) 25 25 26 26 extern unsigned long __must_check 27 - __copy_from_user(void *to, const void __user *from, unsigned long n); 27 + raw_copy_from_user(void *to, const void __user *from, unsigned long n); 28 28 extern unsigned long __must_check 29 - __copy_to_user(void __user *to, const void *from, unsigned long n); 29 + raw_copy_to_user(void __user *to, const void *from, unsigned long n); 30 30 extern unsigned long __must_check 31 31 __clear_user(void __user *addr, unsigned long n); 32 32 extern unsigned long __must_check 33 33 __strncpy_from_user(char *to, const char __user *from, unsigned long count); 34 34 extern unsigned long 35 35 __strnlen_user(const char __user *s, long n); 36 + #define INLINE_COPY_FROM_USER 37 + #define INLINE_COPY_TO_USER 36 38 37 39 #include <asm-generic/uaccess.h> 38 40
+2 -2
arch/unicore32/kernel/ksyms.c
··· 46 46 47 47 EXPORT_SYMBOL(copy_page); 48 48 49 - EXPORT_SYMBOL(__copy_from_user); 50 - EXPORT_SYMBOL(__copy_to_user); 49 + EXPORT_SYMBOL(raw_copy_from_user); 50 + EXPORT_SYMBOL(raw_copy_to_user); 51 51 EXPORT_SYMBOL(__clear_user); 52 52 53 53 EXPORT_SYMBOL(__ashldi3);
+6 -10
arch/unicore32/lib/copy_from_user.S
··· 16 16 /* 17 17 * Prototype: 18 18 * 19 - * size_t __copy_from_user(void *to, const void *from, size_t n) 19 + * size_t raw_copy_from_user(void *to, const void *from, size_t n) 20 20 * 21 21 * Purpose: 22 22 * ··· 87 87 88 88 .text 89 89 90 - ENTRY(__copy_from_user) 90 + ENTRY(raw_copy_from_user) 91 91 92 92 #include "copy_template.S" 93 93 94 - ENDPROC(__copy_from_user) 94 + ENDPROC(raw_copy_from_user) 95 95 96 96 .pushsection .fixup,"ax" 97 97 .align 0 98 98 copy_abort_preamble 99 - ldm.w (r1, r2), [sp]+ 100 - sub r3, r0, r1 101 - rsub r2, r3, r2 102 - stw r2, [sp] 103 - mov r1, #0 104 - b.l memset 105 - ldw.w r0, [sp]+, #4 99 + ldm.w (r1, r2, r3), [sp]+ 100 + sub r0, r0, r1 101 + rsub r0, r0, r2 106 102 copy_abort_end 107 103 .popsection 108 104
+3 -3
arch/unicore32/lib/copy_to_user.S
··· 16 16 /* 17 17 * Prototype: 18 18 * 19 - * size_t __copy_to_user(void *to, const void *from, size_t n) 19 + * size_t raw_copy_to_user(void *to, const void *from, size_t n) 20 20 * 21 21 * Purpose: 22 22 * ··· 79 79 80 80 .text 81 81 82 - WEAK(__copy_to_user) 82 + WEAK(raw_copy_to_user) 83 83 84 84 #include "copy_template.S" 85 85 86 - ENDPROC(__copy_to_user) 86 + ENDPROC(raw_copy_to_user) 87 87 88 88 .pushsection .fixup,"ax" 89 89 .align 0