|
|
@@ -180,13 +180,13 @@ extern void __get_user_unknown (void);
|
|
|
* could clobber r8 and r9 (among others). Thus, be careful not to evaluate it while
|
|
|
* using r8/r9.
|
|
|
*/
|
|
|
-#define __do_get_user(check, x, ptr, size, segment) \
|
|
|
+#define __do_get_user(check, x, ptr, size) \
|
|
|
({ \
|
|
|
const __typeof__(*(ptr)) __user *__gu_ptr = (ptr); \
|
|
|
__typeof__ (size) __gu_size = (size); \
|
|
|
long __gu_err = -EFAULT; \
|
|
|
unsigned long __gu_val = 0; \
|
|
|
- if (!check || __access_ok(__gu_ptr, size, segment)) \
|
|
|
+ if (!check || __access_ok(__gu_ptr, size, get_fs())) \
|
|
|
switch (__gu_size) { \
|
|
|
case 1: __get_user_size(__gu_val, __gu_ptr, 1, __gu_err); break; \
|
|
|
case 2: __get_user_size(__gu_val, __gu_ptr, 2, __gu_err); break; \
|
|
|
@@ -198,8 +198,8 @@ extern void __get_user_unknown (void);
|
|
|
__gu_err; \
|
|
|
})
|
|
|
|
|
|
-#define __get_user_nocheck(x, ptr, size) __do_get_user(0, x, ptr, size, KERNEL_DS)
|
|
|
-#define __get_user_check(x, ptr, size) __do_get_user(1, x, ptr, size, get_fs())
|
|
|
+#define __get_user_nocheck(x, ptr, size) __do_get_user(0, x, ptr, size)
|
|
|
+#define __get_user_check(x, ptr, size) __do_get_user(1, x, ptr, size)
|
|
|
|
|
|
extern void __put_user_unknown (void);
|
|
|
|
|
|
@@ -207,14 +207,14 @@ extern void __put_user_unknown (void);
|
|
|
* Evaluating arguments X, PTR, SIZE, and SEGMENT may involve subroutine-calls, which
|
|
|
* could clobber r8 (among others). Thus, be careful not to evaluate them while using r8.
|
|
|
*/
|
|
|
-#define __do_put_user(check, x, ptr, size, segment) \
|
|
|
+#define __do_put_user(check, x, ptr, size) \
|
|
|
({ \
|
|
|
__typeof__ (x) __pu_x = (x); \
|
|
|
__typeof__ (*(ptr)) __user *__pu_ptr = (ptr); \
|
|
|
__typeof__ (size) __pu_size = (size); \
|
|
|
long __pu_err = -EFAULT; \
|
|
|
\
|
|
|
- if (!check || __access_ok(__pu_ptr, __pu_size, segment)) \
|
|
|
+ if (!check || __access_ok(__pu_ptr, __pu_size, get_fs())) \
|
|
|
switch (__pu_size) { \
|
|
|
case 1: __put_user_size(__pu_x, __pu_ptr, 1, __pu_err); break; \
|
|
|
case 2: __put_user_size(__pu_x, __pu_ptr, 2, __pu_err); break; \
|
|
|
@@ -225,8 +225,8 @@ extern void __put_user_unknown (void);
|
|
|
__pu_err; \
|
|
|
})
|
|
|
|
|
|
-#define __put_user_nocheck(x, ptr, size) __do_put_user(0, x, ptr, size, KERNEL_DS)
|
|
|
-#define __put_user_check(x, ptr, size) __do_put_user(1, x, ptr, size, get_fs())
|
|
|
+#define __put_user_nocheck(x, ptr, size) __do_put_user(0, x, ptr, size)
|
|
|
+#define __put_user_check(x, ptr, size) __do_put_user(1, x, ptr, size)
|
|
|
|
|
|
/*
|
|
|
* Complex access routines
|