|
@@ -237,8 +237,6 @@ extern void __put_user_2(void);
|
|
|
extern void __put_user_4(void);
|
|
|
extern void __put_user_8(void);
|
|
|
|
|
|
-#ifdef CONFIG_X86_WP_WORKS_OK
|
|
|
-
|
|
|
/**
|
|
|
* put_user: - Write a simple value into user space.
|
|
|
* @x: Value to copy to user space.
|
|
@@ -326,29 +324,6 @@ do { \
|
|
|
} \
|
|
|
} while (0)
|
|
|
|
|
|
-#else
|
|
|
-
|
|
|
-#define __put_user_size(x, ptr, size, retval, errret) \
|
|
|
-do { \
|
|
|
- __typeof__(*(ptr))__pus_tmp = x; \
|
|
|
- retval = 0; \
|
|
|
- \
|
|
|
- if (unlikely(__copy_to_user_ll(ptr, &__pus_tmp, size) != 0)) \
|
|
|
- retval = errret; \
|
|
|
-} while (0)
|
|
|
-
|
|
|
-#define put_user(x, ptr) \
|
|
|
-({ \
|
|
|
- int __ret_pu; \
|
|
|
- __typeof__(*(ptr))__pus_tmp = x; \
|
|
|
- __ret_pu = 0; \
|
|
|
- if (unlikely(__copy_to_user_ll(ptr, &__pus_tmp, \
|
|
|
- sizeof(*(ptr))) != 0)) \
|
|
|
- __ret_pu = -EFAULT; \
|
|
|
- __ret_pu; \
|
|
|
-})
|
|
|
-#endif
|
|
|
-
|
|
|
#ifdef CONFIG_X86_32
|
|
|
#define __get_user_asm_u64(x, ptr, retval, errret) (x) = __get_user_bad()
|
|
|
#define __get_user_asm_ex_u64(x, ptr) (x) = __get_user_bad()
|
|
@@ -543,29 +518,12 @@ struct __large_struct { unsigned long buf[100]; };
|
|
|
(x) = (__force __typeof__(*(ptr)))__gue_val; \
|
|
|
} while (0)
|
|
|
|
|
|
-#ifdef CONFIG_X86_WP_WORKS_OK
|
|
|
-
|
|
|
#define put_user_try uaccess_try
|
|
|
#define put_user_catch(err) uaccess_catch(err)
|
|
|
|
|
|
#define put_user_ex(x, ptr) \
|
|
|
__put_user_size_ex((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
|
|
|
|
|
|
-#else /* !CONFIG_X86_WP_WORKS_OK */
|
|
|
-
|
|
|
-#define put_user_try do { \
|
|
|
- int __uaccess_err = 0;
|
|
|
-
|
|
|
-#define put_user_catch(err) \
|
|
|
- (err) |= __uaccess_err; \
|
|
|
-} while (0)
|
|
|
-
|
|
|
-#define put_user_ex(x, ptr) do { \
|
|
|
- __uaccess_err |= __put_user(x, ptr); \
|
|
|
-} while (0)
|
|
|
-
|
|
|
-#endif /* CONFIG_X86_WP_WORKS_OK */
|
|
|
-
|
|
|
extern unsigned long
|
|
|
copy_from_user_nmi(void *to, const void __user *from, unsigned long n);
|
|
|
extern __must_check long
|