diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h index dfdf91ce46edccfbc6c9189bd67a46617a9ef72b..1651cc1fa34eddd37832c0c395d85cf06075b45b 100644 --- a/arch/x86/include/asm/uaccess.h +++ b/arch/x86/include/asm/uaccess.h @@ -436,10 +436,11 @@ do { \ #define __put_user_nocheck(x, ptr, size) \ ({ \ int __pu_err; \ - __typeof__(*(ptr)) __pu_val; \ - __pu_val = x; \ + __typeof__(*(ptr)) __pu_val = (x); \ + __typeof__(ptr) __pu_ptr = (ptr); \ + __typeof__(size) __pu_size = (size); \ __uaccess_begin(); \ - __put_user_size(__pu_val, (ptr), (size), __pu_err, -EFAULT);\ + __put_user_size(__pu_val, __pu_ptr, __pu_size, __pu_err, -EFAULT);\ __uaccess_end(); \ __builtin_expect(__pu_err, 0); \ })