Commit 11836ece authored by Al Viro's avatar Al Viro
Browse files

ia64: get rid of 'segment' argument of __do_{get,put}_user()



it's only evaluated if the first argument is not 0, and in those
cases it's always equal to get_fs()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent 1bd5986b
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -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