diff options
author | Luc Van Oostenryck | 2020-05-29 21:02:18 +0200 |
---|---|---|
committer | Greg Ungerer | 2020-05-30 10:55:54 +1000 |
commit | 9e2b6ed41f8f99c97b13c9d15cbef235dbd97fb6 (patch) | |
tree | 05826c18ec20838f6da80b61e70106dcedfa076e | |
parent | ce3e83759c674ae7c04938d3577dbf0f3144c8f0 (diff) |
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: kbuild test robot <lkp@intel.com>
Signed-off-by: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
Signed-off-by: Greg Ungerer <gerg@linux-m68k.org>
-rw-r--r-- | arch/m68k/include/asm/uaccess_no.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/arch/m68k/include/asm/uaccess_no.h b/arch/m68k/include/asm/uaccess_no.h index 9651766a62af..dcfb69361408 100644 --- a/arch/m68k/include/asm/uaccess_no.h +++ b/arch/m68k/include/asm/uaccess_no.h @@ -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; \ } \ |