unicore32: get rid of zeroing and switch to RAW_COPY_USER

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
Al Viro 2017-03-28 01:37:07 -04:00
parent d597580d37
commit 2ef59f2856
5 changed files with 16 additions and 17 deletions

View File

@ -18,6 +18,7 @@ config UNICORE32
select ARCH_WANT_FRAME_POINTERS
select GENERIC_IOMAP
select MODULES_USE_ELF_REL
select ARCH_HAS_RAW_COPY_USER
help
UniCore-32 is 32-bit Instruction Set Architecture,
including a series of low-power-consumption RISC chip

View File

@ -24,15 +24,17 @@
#define __access_ok(addr, size) (__kernel_ok || __user_ok((addr), (size)))
extern unsigned long __must_check
__copy_from_user(void *to, const void __user *from, unsigned long n);
raw_copy_from_user(void *to, const void __user *from, unsigned long n);
extern unsigned long __must_check
__copy_to_user(void __user *to, const void *from, unsigned long n);
raw_copy_to_user(void __user *to, const void *from, unsigned long n);
extern unsigned long __must_check
__clear_user(void __user *addr, unsigned long n);
extern unsigned long __must_check
__strncpy_from_user(char *to, const char __user *from, unsigned long count);
extern unsigned long
__strnlen_user(const char __user *s, long n);
#define INLINE_COPY_FROM_USER
#define INLINE_COPY_TO_USER
#include <asm-generic/uaccess.h>

View File

@ -46,8 +46,8 @@ EXPORT_SYMBOL(__strncpy_from_user);
EXPORT_SYMBOL(copy_page);
EXPORT_SYMBOL(__copy_from_user);
EXPORT_SYMBOL(__copy_to_user);
EXPORT_SYMBOL(raw_copy_from_user);
EXPORT_SYMBOL(raw_copy_to_user);
EXPORT_SYMBOL(__clear_user);
EXPORT_SYMBOL(__ashldi3);

View File

@ -16,7 +16,7 @@
/*
* Prototype:
*
* size_t __copy_from_user(void *to, const void *from, size_t n)
* size_t raw_copy_from_user(void *to, const void *from, size_t n)
*
* Purpose:
*
@ -87,22 +87,18 @@
.text
ENTRY(__copy_from_user)
ENTRY(raw_copy_from_user)
#include "copy_template.S"
ENDPROC(__copy_from_user)
ENDPROC(raw_copy_from_user)
.pushsection .fixup,"ax"
.align 0
copy_abort_preamble
ldm.w (r1, r2), [sp]+
sub r3, r0, r1
rsub r2, r3, r2
stw r2, [sp]
mov r1, #0
b.l memset
ldw.w r0, [sp]+, #4
ldm.w (r1, r2, r3), [sp]+
sub r0, r0, r1
rsub r0, r0, r2
copy_abort_end
.popsection

View File

@ -16,7 +16,7 @@
/*
* Prototype:
*
* size_t __copy_to_user(void *to, const void *from, size_t n)
* size_t raw_copy_to_user(void *to, const void *from, size_t n)
*
* Purpose:
*
@ -79,11 +79,11 @@
.text
WEAK(__copy_to_user)
WEAK(raw_copy_to_user)
#include "copy_template.S"
ENDPROC(__copy_to_user)
ENDPROC(raw_copy_to_user)
.pushsection .fixup,"ax"
.align 0