Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ebe119cd authored by H. Peter Anvin's avatar H. Peter Anvin
Browse files

x86: Fix movq immediate operand constraints in uaccess.h



The movq instruction, generated by __put_user_asm() when used for
64-bit data, takes a sign-extended immediate ("e") not a zero-extended
immediate ("Z").

Signed-off-by: default avatarH. Peter Anvin <hpa@zytor.com>
Cc: Uros Bizjak <ubizjak@gmail.com>
Cc: stable@kernel.org
parent 155b7352
Loading
Loading
Loading
Loading
+2 −2
Original line number Original line Diff line number Diff line
@@ -212,9 +212,9 @@ extern int __get_user_bad(void);
		     : "A" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
		     : "A" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
#else
#else
#define __put_user_asm_u64(x, ptr, retval, errret) \
#define __put_user_asm_u64(x, ptr, retval, errret) \
	__put_user_asm(x, ptr, retval, "q", "", "Zr", errret)
	__put_user_asm(x, ptr, retval, "q", "", "er", errret)
#define __put_user_asm_ex_u64(x, addr)	\
#define __put_user_asm_ex_u64(x, addr)	\
	__put_user_asm_ex(x, addr, "q", "", "Zr")
	__put_user_asm_ex(x, addr, "q", "", "er")
#define __put_user_x8(x, ptr, __ret_pu) __put_user_x(8, x, ptr, __ret_pu)
#define __put_user_x8(x, ptr, __ret_pu) __put_user_x(8, x, ptr, __ret_pu)
#endif
#endif