Re: [PATCH v2] net: smc91x: Fix pointer types

From: Andrew Lunn
Date: Thu May 16 2024 - 13:17:05 EST


On Thu, May 16, 2024 at 05:56:12PM +0200, Thorsten Blum wrote:
> Use void __iomem pointers as parameters for mcf_insw() and mcf_outsw()
> to align with the parameter types of readw() and writew().
>
> Use lp->base instead of ioaddr when calling SMC_outsw(), SMC_outsb(),
> SMC_insw(), and SMC_insb() to retain its type across macro boundaries
> and to fix the following warnings reported by kernel test robot:
>
> drivers/net/ethernet/smsc/smc91x.c:590:9: sparse: warning: incorrect type in argument 1 (different address spaces)
> drivers/net/ethernet/smsc/smc91x.c:590:9: sparse: expected void *a
> drivers/net/ethernet/smsc/smc91x.c:590:9: sparse: got void [noderef] __iomem *
> drivers/net/ethernet/smsc/smc91x.c:590:9: sparse: warning: incorrect type in argument 1 (different address spaces)
> drivers/net/ethernet/smsc/smc91x.c:590:9: sparse: expected void *a
> drivers/net/ethernet/smsc/smc91x.c:590:9: sparse: got void [noderef] __iomem *
> drivers/net/ethernet/smsc/smc91x.c:590:9: sparse: warning: incorrect type in argument 1 (different address spaces)
> drivers/net/ethernet/smsc/smc91x.c:590:9: sparse: expected void *a
> drivers/net/ethernet/smsc/smc91x.c:590:9: sparse: got void [noderef] __iomem *
> drivers/net/ethernet/smsc/smc91x.c:483:17: sparse: warning: incorrect type in argument 1 (different address spaces)
> drivers/net/ethernet/smsc/smc91x.c:483:17: sparse: expected void *a
> drivers/net/ethernet/smsc/smc91x.c:483:17: sparse: got void [noderef] __iomem *
>
> Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxxx>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Closes: https://lore.kernel.org/oe-kbuild-all/202405160853.3qyaSj8w-lkp@xxxxxxxxx/
> Acked-by: Nicolas Pitre <nico@xxxxxxxxxxx>

Reviewed-by: Andrew Lunn <andrew@xxxxxxx>

You could add a follow up patch which removes the
void __iomem *__ioaddr = ioaddr; lines and uses lp->base.
The code will then be more uniform.

Andrew