Commit 2ef59f28 authored by Al Viro's avatar Al Viro

unicore32: get rid of zeroing and switch to RAW_COPY_USER

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent d597580d
...@@ -18,6 +18,7 @@ config UNICORE32 ...@@ -18,6 +18,7 @@ config UNICORE32
select ARCH_WANT_FRAME_POINTERS select ARCH_WANT_FRAME_POINTERS
select GENERIC_IOMAP select GENERIC_IOMAP
select MODULES_USE_ELF_REL select MODULES_USE_ELF_REL
select ARCH_HAS_RAW_COPY_USER
help help
UniCore-32 is 32-bit Instruction Set Architecture, UniCore-32 is 32-bit Instruction Set Architecture,
including a series of low-power-consumption RISC chip including a series of low-power-consumption RISC chip
......
...@@ -24,15 +24,17 @@ ...@@ -24,15 +24,17 @@
#define __access_ok(addr, size) (__kernel_ok || __user_ok((addr), (size))) #define __access_ok(addr, size) (__kernel_ok || __user_ok((addr), (size)))
extern unsigned long __must_check 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 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 extern unsigned long __must_check
__clear_user(void __user *addr, unsigned long n); __clear_user(void __user *addr, unsigned long n);
extern unsigned long __must_check extern unsigned long __must_check
__strncpy_from_user(char *to, const char __user *from, unsigned long count); __strncpy_from_user(char *to, const char __user *from, unsigned long count);
extern unsigned long extern unsigned long
__strnlen_user(const char __user *s, long n); __strnlen_user(const char __user *s, long n);
#define INLINE_COPY_FROM_USER
#define INLINE_COPY_TO_USER
#include <asm-generic/uaccess.h> #include <asm-generic/uaccess.h>
......
...@@ -46,8 +46,8 @@ EXPORT_SYMBOL(__strncpy_from_user); ...@@ -46,8 +46,8 @@ EXPORT_SYMBOL(__strncpy_from_user);
EXPORT_SYMBOL(copy_page); EXPORT_SYMBOL(copy_page);
EXPORT_SYMBOL(__copy_from_user); EXPORT_SYMBOL(raw_copy_from_user);
EXPORT_SYMBOL(__copy_to_user); EXPORT_SYMBOL(raw_copy_to_user);
EXPORT_SYMBOL(__clear_user); EXPORT_SYMBOL(__clear_user);
EXPORT_SYMBOL(__ashldi3); EXPORT_SYMBOL(__ashldi3);
......
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/* /*
* Prototype: * 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: * Purpose:
* *
...@@ -87,22 +87,18 @@ ...@@ -87,22 +87,18 @@
.text .text
ENTRY(__copy_from_user) ENTRY(raw_copy_from_user)
#include "copy_template.S" #include "copy_template.S"
ENDPROC(__copy_from_user) ENDPROC(raw_copy_from_user)
.pushsection .fixup,"ax" .pushsection .fixup,"ax"
.align 0 .align 0
copy_abort_preamble copy_abort_preamble
ldm.w (r1, r2), [sp]+ ldm.w (r1, r2, r3), [sp]+
sub r3, r0, r1 sub r0, r0, r1
rsub r2, r3, r2 rsub r0, r0, r2
stw r2, [sp]
mov r1, #0
b.l memset
ldw.w r0, [sp]+, #4
copy_abort_end copy_abort_end
.popsection .popsection
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
/* /*
* Prototype: * 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: * Purpose:
* *
...@@ -79,11 +79,11 @@ ...@@ -79,11 +79,11 @@
.text .text
WEAK(__copy_to_user) WEAK(raw_copy_to_user)
#include "copy_template.S" #include "copy_template.S"
ENDPROC(__copy_to_user) ENDPROC(raw_copy_to_user)
.pushsection .fixup,"ax" .pushsection .fixup,"ax"
.align 0 .align 0
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment