On Wed, May 20, 2020 at 02:57:50PM +0800, Jason Wang wrote:
> The ptr is a pointer to userspace memory. So we need annotate it with
> __user otherwise we may get sparse warnings like:
> 
> drivers/vhost/vhost.c:1603:13: sparse: sparse: incorrect type in initializer 
> (different address spaces) @@    expected void const *__gu_ptr @@    got 
> unsigned int [noderef] [usertypvoid const *__gu_ptr @@
> drivers/vhost/vhost.c:1603:13: sparse:    expected void const *__gu_ptr
> drivers/vhost/vhost.c:1603:13: sparse:    got unsigned int [noderef] 
> [usertype] <asn:1> *idxp
> 
> Cc: Geert Uytterhoeven <[email protected]>
> Cc: [email protected]
> Cc: [email protected]
> Reported-by: kbuild test robot <[email protected]>
> Signed-off-by: Jason Wang <[email protected]>

Makes sense:

Acked-by: Michael S. Tsirkin <[email protected]>

> ---
>  arch/m68k/include/asm/uaccess_mm.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/arch/m68k/include/asm/uaccess_mm.h 
> b/arch/m68k/include/asm/uaccess_mm.h
> index 7e85de984df1..9ae9f8d05925 100644
> --- a/arch/m68k/include/asm/uaccess_mm.h
> +++ b/arch/m68k/include/asm/uaccess_mm.h
> @@ -142,7 +142,7 @@ asm volatile ("\n"                                        
> \
>               __get_user_asm(__gu_err, x, ptr, u32, l, r, -EFAULT);   \
>               break;                                                  \
>       case 8: {                                                       \
> -             const void *__gu_ptr = (ptr);                           \
> +             const void __user *__gu_ptr = (ptr);                    \
>               union {                                                 \
>                       u64 l;                                          \
>                       __typeof__(*(ptr)) t;                           \
> -- 
> 2.20.1

Reply via email to