mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-03 00:54:09 +08:00
asm-generic: add nommu implementations of __{get,put}_kernel_nofault
Add native implementations of __{get,put}_kernel_nofault using {get,put}_unaligned, just like the {get,put}_user implementations. Signed-off-by: Christoph Hellwig <hch@lst.de> Acked-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Palmer Dabbelt <palmerdabbelt@google.com>
This commit is contained in:
parent
931de11f5a
commit
2d2d255467
@ -61,6 +61,22 @@ static inline int __put_user_fn(size_t size, void __user *to, void *from)
|
||||
}
|
||||
#define __put_user_fn(sz, u, k) __put_user_fn(sz, u, k)
|
||||
|
||||
#define __get_kernel_nofault(dst, src, type, err_label) \
|
||||
do { \
|
||||
*((type *)dst) = get_unaligned((type *)(src)); \
|
||||
if (0) /* make sure the label looks used to the compiler */ \
|
||||
goto err_label; \
|
||||
} while (0)
|
||||
|
||||
#define __put_kernel_nofault(dst, src, type, err_label) \
|
||||
do { \
|
||||
put_unaligned(*((type *)src), (type *)(dst)); \
|
||||
if (0) /* make sure the label looks used to the compiler */ \
|
||||
goto err_label; \
|
||||
} while (0)
|
||||
|
||||
#define HAVE_GET_KERNEL_NOFAULT 1
|
||||
|
||||
static inline __must_check unsigned long
|
||||
raw_copy_from_user(void *to, const void __user * from, unsigned long n)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user