drivers/net/ethernet/cirrus/ep93xx_eth.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
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(-)
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;
--
2.43.2
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; -- Alexander Sverdlin.
© 2016 - 2024 Red Hat, Inc.