diff mbox series

net: cirrus: use u8 for addr to calm down sparse

Message ID 20240922065212.7483-1-nikita.shubin@maquefel.me (mailing list archive)
State Accepted
Commit 878716d40cdd4d7923f4e910fe4f6841ae7686f1
Headers show
Series net: cirrus: use u8 for addr to calm down sparse | expand

Commit Message

Nikita Shubin Sept. 22, 2024, 6:52 a.m. UTC
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@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202409212354.9CiUem7B-lkp@intel.com/
Fixes: 858555bb5598 ("net: cirrus: add DT support for Cirrus EP93xx")
Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
---
 drivers/net/ethernet/cirrus/ep93xx_eth.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

Comments

Alexander Sverdlin Sept. 22, 2024, 12:54 p.m. UTC | #1
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@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202409212354.9CiUem7B-lkp@intel.com/
> Fixes: 858555bb5598 ("net: cirrus: add DT support for Cirrus EP93xx")
> Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>

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

> ---
>  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;
patchwork-bot+linux-soc@kernel.org Oct. 11, 2024, 10:59 a.m. UTC | #2
Hello:

This patch was applied to soc/soc.git (arm/fixes)
by Arnd Bergmann <arnd@arndb.de>:

On Sun, 22 Sep 2024 09:52:12 +0300 you 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@intel.com>
> Closes: https://lore.kernel.org/oe-kbuild-all/202409212354.9CiUem7B-lkp@intel.com/
> Fixes: 858555bb5598 ("net: cirrus: add DT support for Cirrus EP93xx")
> Signed-off-by: Nikita Shubin <nikita.shubin@maquefel.me>
> 
> [...]

Here is the summary with links:
  - net: cirrus: use u8 for addr to calm down sparse
    https://git.kernel.org/soc/soc/c/878716d40cdd

You are awesome, thank you!
diff mbox series

Patch

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;