Re: [PATCH] cb710: avoid NULL pointer subtraction

From: Michał Mirosław
Date: Mon Sep 27 2021 - 11:32:11 EST


On Mon, Sep 27, 2021 at 02:13:57PM +0200, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@xxxxxxxx>
>
> clang-14 complains about an unusual way of converting a pointer to
> an integer:
>
> drivers/misc/cb710/sgbuf2.c:50:15: error: performing pointer subtraction with a null pointer has undefined behavior [-Werror,-Wnull-pointer-subtraction]
> return ((ptr - NULL) & 3) != 0;
>
> Replace this with a normal cast to uintptr_t.
>
> Fixes: 5f5bac8272be ("mmc: Driver for CB710/720 memory card reader (MMC part)")
> Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
> ---
> drivers/misc/cb710/sgbuf2.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/misc/cb710/sgbuf2.c b/drivers/misc/cb710/sgbuf2.c
> index e5a4ed3701eb..a798fad5f03c 100644
> --- a/drivers/misc/cb710/sgbuf2.c
> +++ b/drivers/misc/cb710/sgbuf2.c
> @@ -47,7 +47,7 @@ static inline bool needs_unaligned_copy(const void *ptr)
> #ifdef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
> return false;
> #else
> - return ((ptr - NULL) & 3) != 0;
> + return ((uintptr_t)ptr & 3) != 0;
> #endif
> }
>

Acked-by: Michał Mirosław <mirq-linux@xxxxxxxxxxxxx>