Skip to content

Commit

Permalink
riscv: use memcpy based uaccess for nommu again
Browse files Browse the repository at this point in the history
This reverts commit adccfb1.

Now that the generic uaccess by mempcy code handles unaligned addresses
the generic code can be used for all RISC-V CPUs.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
  • Loading branch information
Christoph Hellwig authored and Palmer Dabbelt committed Oct 4, 2020
1 parent 3c57fa1 commit 11129e8
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 19 deletions.
1 change: 1 addition & 0 deletions arch/riscv/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ config RISCV
select SYSCTL_EXCEPTION_TRACE
select THREAD_INFO_IN_TASK
select SET_FS
select UACCESS_MEMCPY if !MMU

config ARCH_MMAP_RND_BITS_MIN
default 18 if 64BIT
Expand Down
36 changes: 18 additions & 18 deletions arch/riscv/include/asm/uaccess.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,24 +13,6 @@
/*
* User space memory access functions
*/

extern unsigned long __must_check __asm_copy_to_user(void __user *to,
const void *from, unsigned long n);
extern unsigned long __must_check __asm_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 __asm_copy_from_user(to, from, n);
}

static inline unsigned long
raw_copy_to_user(void __user *to, const void *from, unsigned long n)
{
return __asm_copy_to_user(to, from, n);
}

#ifdef CONFIG_MMU
#include <linux/errno.h>
#include <linux/compiler.h>
Expand Down Expand Up @@ -385,6 +367,24 @@ do { \
-EFAULT; \
})


unsigned long __must_check __asm_copy_to_user(void __user *to,
const void *from, unsigned long n);
unsigned long __must_check __asm_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 __asm_copy_from_user(to, from, n);
}

static inline unsigned long
raw_copy_to_user(void __user *to, const void *from, unsigned long n)
{
return __asm_copy_to_user(to, from, n);
}

extern long strncpy_from_user(char *dest, const char __user *src, long count);

extern long __must_check strlen_user(const char __user *str);
Expand Down
2 changes: 1 addition & 1 deletion arch/riscv/lib/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,5 @@
lib-y += delay.o
lib-y += memcpy.o
lib-y += memset.o
lib-y += uaccess.o
lib-$(CONFIG_MMU) += uaccess.o
lib-$(CONFIG_64BIT) += tishift.o

0 comments on commit 11129e8

Please sign in to comment.