Re: [PATCH] net: ni65: Avoid typecast of pointer to u32

From: Arnd Bergmann
Date: Thu Sep 09 2021 - 04:16:08 EST


On Thu, Sep 9, 2021 at 6:50 AM Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
>
> Building alpha:allmodconfig results in the following error.
>
> drivers/net/ethernet/amd/ni65.c: In function 'ni65_stop_start':
> drivers/net/ethernet/amd/ni65.c:751:37: error:
> cast from pointer to integer of different size
> buffer[i] = (u32) isa_bus_to_virt(tmdp->u.buffer);
>
> 'buffer[]' is declared as unsigned long, so replace the typecast to u32
> with a typecast to unsigned long to fix the problem.
>
> Cc: Arnd Bergmann <arnd@xxxxxxxxxx>
> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>

Acked-by: Arnd Bergmann <arnd@xxxxxxxx>

> ---
> drivers/net/ethernet/amd/ni65.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/amd/ni65.c b/drivers/net/ethernet/amd/ni65.c
> index b5df7ad5a83f..032e8922b482 100644
> --- a/drivers/net/ethernet/amd/ni65.c
> +++ b/drivers/net/ethernet/amd/ni65.c
> @@ -748,7 +748,7 @@ static void ni65_stop_start(struct net_device *dev,struct priv *p)
> #ifdef XMT_VIA_SKB
> skb_save[i] = p->tmd_skb[i];
> #endif
> - buffer[i] = (u32) isa_bus_to_virt(tmdp->u.buffer);
> + buffer[i] = (unsigned long)isa_bus_to_virt(tmdp->u.buffer);

I generally prefer uintptr_t over unsigned long for this cast because it's more
descriptive, but the effect is the same.

Arnd