diff options
| -rw-r--r-- | arch/x86/include/asm/uaccess.h | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h index d9668c3beb5b..fc1eb64fdfff 100644 --- a/arch/x86/include/asm/uaccess.h +++ b/arch/x86/include/asm/uaccess.h | |||
| @@ -703,14 +703,15 @@ extern struct movsl_mask { | |||
| 703 | #define unsafe_put_user(x, ptr, err_label) \ | 703 | #define unsafe_put_user(x, ptr, err_label) \ |
| 704 | do { \ | 704 | do { \ |
| 705 | int __pu_err; \ | 705 | int __pu_err; \ |
| 706 | __put_user_size((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)), __pu_err, -EFAULT); \ | 706 | __typeof__(*(ptr)) __pu_val = (x); \ |
| 707 | __put_user_size(__pu_val, (ptr), sizeof(*(ptr)), __pu_err, -EFAULT); \ | ||
| 707 | if (unlikely(__pu_err)) goto err_label; \ | 708 | if (unlikely(__pu_err)) goto err_label; \ |
| 708 | } while (0) | 709 | } while (0) |
| 709 | 710 | ||
| 710 | #define unsafe_get_user(x, ptr, err_label) \ | 711 | #define unsafe_get_user(x, ptr, err_label) \ |
| 711 | do { \ | 712 | do { \ |
| 712 | int __gu_err; \ | 713 | int __gu_err; \ |
| 713 | unsigned long __gu_val; \ | 714 | __inttype(*(ptr)) __gu_val; \ |
| 714 | __get_user_size(__gu_val, (ptr), sizeof(*(ptr)), __gu_err, -EFAULT); \ | 715 | __get_user_size(__gu_val, (ptr), sizeof(*(ptr)), __gu_err, -EFAULT); \ |
| 715 | (x) = (__force __typeof__(*(ptr)))__gu_val; \ | 716 | (x) = (__force __typeof__(*(ptr)))__gu_val; \ |
| 716 | if (unlikely(__gu_err)) goto err_label; \ | 717 | if (unlikely(__gu_err)) goto err_label; \ |
