Re: [PATCH] asm-generic: Force cast get_user() setting x to 0

From: Stephen Boyd
Date: Fri Feb 24 2017 - 20:25:19 EST


Quoting Stephen Boyd (2017-02-17 08:52:29)
> If we call get_user() with an __le* or __be* type sparse will
> complain when we assign the result to 0 on the faulting path.
> Let's force cast here so that sparse doesn't complain. This
> mirrors what we do in __get_user() as well.
>
> Signed-off-by: Stephen Boyd <stephen.boyd@xxxxxxxxxx>
> ---
>
> I made a similar fix to arm64 headers, and it looks like asm-generic
> would need the same fix.

I suppose we can ignore this. I was using sparse v0.5.0 but it seems
that later versions of sparse don't complain here anymore as Luc has
pointed out.

-Stephen

>
> include/asm-generic/uaccess.h | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/asm-generic/uaccess.h b/include/asm-generic/uaccess.h
> index cc6bb319e464..6352d61df7eb 100644
> --- a/include/asm-generic/uaccess.h
> +++ b/include/asm-generic/uaccess.h
> @@ -227,7 +227,7 @@ extern int __put_user_bad(void) __attribute__((noreturn));
> might_fault(); \
> access_ok(VERIFY_READ, __p, sizeof(*ptr)) ? \
> __get_user((x), (__typeof__(*(ptr)) *)__p) : \
> - ((x) = (__typeof__(*(ptr)))0,-EFAULT); \
> + ((x) = (__force __typeof__(*(ptr)))0, -EFAULT); \
> })
>
> #ifndef __get_user_fn