Commit 9e2b6ed4 authored by Luc Van Oostenryck's avatar Luc Van Oostenryck Committed by Greg Ungerer
Browse files

m68k,nommu: fix implicit cast from __user in __{get,put}_user_asm()



The assembly for __get_user_asm() & __put_user_asm() uses memcpy()
when the size is 8.

However, the pointer is always a __user one while memcpy() expects
a plain one and so this cast creates a lot of warnings when using
Sparse.

So, fix this by adding a cast to 'void __force *' at memcpy()'s
argument.

Reported-by: default avatarkbuild test robot <lkp@intel.com>
Signed-off-by: default avatarLuc Van Oostenryck <luc.vanoostenryck@gmail.com>
Signed-off-by: default avatarGreg Ungerer <gerg@linux-m68k.org>
parent ce3e8375
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -42,7 +42,7 @@ static inline int _access_ok(unsigned long addr, unsigned long size)
	__put_user_asm(__pu_err, __pu_val, ptr, l);	\
	break;						\
    case 8:						\
	memcpy(ptr, &__pu_val, sizeof (*(ptr))); \
	memcpy((void __force *)ptr, &__pu_val, sizeof(*(ptr))); \
	break;						\
    default:						\
	__pu_err = __put_user_bad();			\
@@ -85,7 +85,7 @@ extern int __put_user_bad(void);
	    u64 l;						\
	    __typeof__(*(ptr)) t;				\
	} __gu_val;						\
	memcpy(&__gu_val.l, ptr, sizeof(__gu_val.l));		\
	memcpy(&__gu_val.l, (const void __force *)ptr, sizeof(__gu_val.l)); \
	(x) = __gu_val.t;					\
	break;							\
    }								\