diff options
Diffstat (limited to 'arch/riscv/include/asm/uaccess.h')
| -rw-r--r-- | arch/riscv/include/asm/uaccess.h | 8 | 
1 files changed, 4 insertions, 4 deletions
| diff --git a/arch/riscv/include/asm/uaccess.h b/arch/riscv/include/asm/uaccess.h index b88a6218b7f2..f5f4f7f85543 100644 --- a/arch/riscv/include/asm/uaccess.h +++ b/arch/riscv/include/asm/uaccess.h @@ -209,7 +209,7 @@ do {									\  		err = 0;						\  		break;							\  __gu_failed:								\ -		x = 0;							\ +		x = (__typeof__(x))0;					\  		err = -EFAULT;						\  } while (0) @@ -311,7 +311,7 @@ do {								\  do {								\  	if (!IS_ENABLED(CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS) &&	\  	    !IS_ALIGNED((uintptr_t)__gu_ptr, sizeof(*__gu_ptr))) {	\ -		__inttype(x) ___val = (__inttype(x))x;			\ +		__typeof__(*(__gu_ptr)) ___val = (x);		\  		if (__asm_copy_to_user_sum_enabled(__gu_ptr, &(___val), sizeof(*__gu_ptr))) \  			goto label;				\  		break;						\ @@ -438,10 +438,10 @@ unsigned long __must_check clear_user(void __user *to, unsigned long n)  }  #define __get_kernel_nofault(dst, src, type, err_label)			\ -	__get_user_nocheck(*((type *)(dst)), (type *)(src), err_label) +	__get_user_nocheck(*((type *)(dst)), (__force __user type *)(src), err_label)  #define __put_kernel_nofault(dst, src, type, err_label)			\ -	__put_user_nocheck(*((type *)(src)), (type *)(dst), err_label) +	__put_user_nocheck(*((type *)(src)), (__force __user type *)(dst), err_label)  static __must_check __always_inline bool user_access_begin(const void __user *ptr, size_t len)  { | 
