Commit 019a1369 authored by Hiroshi Shimamoto's avatar Hiroshi Shimamoto Committed by Ingo Molnar
Browse files

x86: uaccess: fix compilation error on CONFIG_M386



In case of !CONFIG_X86_WP_WORKS_OK, __put_user_size_ex() is not defined.
Add macros for !CONFIG_X86_WP_WORKS_OK case.

Signed-off-by: default avatarHiroshi Shimamoto <h-shimamoto@ct.jp.nec.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 3b4b7570
Loading
Loading
Loading
Loading
+20 −2
Original line number Diff line number Diff line
@@ -525,8 +525,6 @@ struct __large_struct { unsigned long buf[100]; };
 */
#define get_user_try		uaccess_try
#define get_user_catch(err)	uaccess_catch(err)
#define put_user_try		uaccess_try
#define put_user_catch(err)	uaccess_catch(err)

#define get_user_ex(x, ptr)	do {					\
	unsigned long __gue_val;					\
@@ -534,9 +532,29 @@ 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 */

/*
 * movsl can be slow when source and dest are not both 8-byte aligned
 */