mirror of https://gitee.com/openkylin/linux.git
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:
parent
d597580d37
commit
2ef59f2856
|
@ -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
|
||||
|
|
|
@ -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>
|
||||
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue