Re: [PATCH] net: cirrus: use u8 for addr to calm down sparse

From: Alexander Sverdlin
Date: Sun Sep 22 2024 - 08:54:39 EST


Hi Nikita!

On Sun, 2024-09-22 at 09:52 +0300, Nikita Shubin wrote:
> ep93xx_eth.c:805:40: sparse: sparse: incorrect type in argument 2
>      (different address spaces)
> ep93xx_eth.c:805:40: sparse: expected unsigned char const [usertype] *addr
> ep93xx_eth.c:805:40: sparse: got void [noderef] __iomem *
>
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Closes: https://lore.kernel.org/oe-kbuild-all/202409212354.9CiUem7B-lkp@xxxxxxxxx/
> Fixes: 858555bb5598 ("net: cirrus: add DT support for Cirrus EP93xx")
> Signed-off-by: Nikita Shubin <nikita.shubin@xxxxxxxxxxx>

Acked-by: Alexander Sverdlin <alexander.sverdlin@xxxxxxxxx>

> ---
>  drivers/net/ethernet/cirrus/ep93xx_eth.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/net/ethernet/cirrus/ep93xx_eth.c b/drivers/net/ethernet/cirrus/ep93xx_eth.c
> index 2523d9c9d1b8..c2007cd86416 100644
> --- a/drivers/net/ethernet/cirrus/ep93xx_eth.c
> +++ b/drivers/net/ethernet/cirrus/ep93xx_eth.c
> @@ -771,6 +771,7 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
>   struct resource *mem;
>   void __iomem *base_addr;
>   struct device_node *np;
> + u8 addr[ETH_ALEN];
>   u32 phy_id;
>   int irq;
>   int err;
> @@ -802,7 +803,8 @@ static int ep93xx_eth_probe(struct platform_device *pdev)
>   goto err_out;
>   }
>  
> - eth_hw_addr_set(dev, base_addr + 0x50);
> + memcpy_fromio(addr, base_addr + 0x50, ETH_ALEN);
> + eth_hw_addr_set(dev, addr);
>   dev->ethtool_ops = &ep93xx_ethtool_ops;
>   dev->netdev_ops = &ep93xx_netdev_ops;
>   dev->features |= NETIF_F_SG | NETIF_F_HW_CSUM;

--
Alexander Sverdlin.