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.