mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 22:37:45 -04:00
x86: use non-set_fs based maccess routines
Provide arch_kernel_read and arch_kernel_write routines to implement the maccess routines without messing with set_fs and without stac/clac that opens up access to user space. [[email protected]: coding style fixes] Signed-off-by: Christoph Hellwig <[email protected]> Signed-off-by: Andrew Morton <[email protected]> Cc: Alexei Starovoitov <[email protected]> Cc: Daniel Borkmann <[email protected]> Cc: "H. Peter Anvin" <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: Masami Hiramatsu <[email protected]> Cc: Thomas Gleixner <[email protected]> Link: http://lkml.kernel.org/r/[email protected] Signed-off-by: Linus Torvalds <[email protected]>
This commit is contained in:
1 parent
b58294ead1
commit
fa94111d94
1 file changed
+16
@@ -523,5 +523,21 @@ do { \
|
||||
unsafe_copy_loop(__ucu_dst, __ucu_src, __ucu_len, u8, label); \
|
||||
} while (0)
|
||||
|
||||
#define HAVE_GET_KERNEL_NOFAULT
|
||||
|
||||
#define __get_kernel_nofault(dst, src, type, err_label) \
|
||||
do { \
|
||||
int __kr_err; \
|
||||
\
|
||||
__get_user_size(*((type *)dst), (__force type __user *)src, \
|
||||
sizeof(type), __kr_err); \
|
||||
if (unlikely(__kr_err)) \
|
||||
goto err_label; \
|
||||
} while (0)
|
||||
|
||||
#define __put_kernel_nofault(dst, src, type, err_label) \
|
||||
__put_user_size(*((type *)(src)), (__force type __user *)(dst), \
|
||||
sizeof(type), err_label)
|
||||
|
||||
#endif /* _ASM_X86_UACCESS_H */
|
||||
|
||||
Reference in new issue
Block a user