mirror of https://gitee.com/openkylin/linux.git
net: ethernet: fix similar warning reported by kbuild test robot
This patch fixes following (similar) warning reported by kbuild test robot:
In function ‘memcpy’,
inlined from ‘smsc75xx_init_mac_address’ at drivers/net/usb/smsc75xx.c:778:3,
inlined from ‘smsc75xx_bind’ at drivers/net/usb/smsc75xx.c:1501:2:
./include/linux/string.h:355:9: warning: argument 2 null where non-null expected [-Wnonnull]
return __builtin_memcpy(p, q, size);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/usb/smsc75xx.c: In function ‘smsc75xx_bind’:
./include/linux/string.h:355:9: note: in a call to built-in function ‘__builtin_memcpy’
I've replaced the offending memcpy with ether_addr_copy, because I'm
100% sure, that of_get_mac_address can't return NULL as it returns valid
pointer or ERR_PTR encoded value, nothing else.
I'm hesitant to just change IS_ERR into IS_ERR_OR_NULL check, as this
would make the warning disappear also, but it would be confusing to
check for impossible return value just to make a compiler happy.
I'm now changing all occurencies of memcpy to ether_addr_copy after the
of_get_mac_address call, as it's very likely, that we're going to get
similar reports from kbuild test robot in the future.
Fixes: a51645f70f
("net: ethernet: support of_get_mac_address new ERR_PTR error")
Reported-by: kbuild test robot <lkp@intel.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
1be9131453
commit
2d2924af96
|
@ -871,7 +871,7 @@ static int emac_probe(struct platform_device *pdev)
|
|||
/* Read MAC-address from DT */
|
||||
mac_addr = of_get_mac_address(np);
|
||||
if (!IS_ERR(mac_addr))
|
||||
memcpy(ndev->dev_addr, mac_addr, ETH_ALEN);
|
||||
ether_addr_copy(ndev->dev_addr, mac_addr);
|
||||
|
||||
/* Check if the MAC address is valid, if not get a random one */
|
||||
if (!is_valid_ether_addr(ndev->dev_addr)) {
|
||||
|
|
|
@ -961,7 +961,7 @@ int arc_emac_probe(struct net_device *ndev, int interface)
|
|||
mac_addr = of_get_mac_address(dev->of_node);
|
||||
|
||||
if (!IS_ERR(mac_addr))
|
||||
memcpy(ndev->dev_addr, mac_addr, ETH_ALEN);
|
||||
ether_addr_copy(ndev->dev_addr, mac_addr);
|
||||
else
|
||||
eth_hw_addr_random(ndev);
|
||||
|
||||
|
|
|
@ -1504,7 +1504,7 @@ static int octeon_mgmt_probe(struct platform_device *pdev)
|
|||
mac = of_get_mac_address(pdev->dev.of_node);
|
||||
|
||||
if (!IS_ERR(mac))
|
||||
memcpy(netdev->dev_addr, mac, ETH_ALEN);
|
||||
ether_addr_copy(netdev->dev_addr, mac);
|
||||
else
|
||||
eth_hw_addr_random(netdev);
|
||||
|
||||
|
|
|
@ -1413,7 +1413,7 @@ static struct dm9000_plat_data *dm9000_parse_dt(struct device *dev)
|
|||
|
||||
mac_addr = of_get_mac_address(np);
|
||||
if (!IS_ERR(mac_addr))
|
||||
memcpy(pdata->dev_addr, mac_addr, sizeof(pdata->dev_addr));
|
||||
ether_addr_copy(pdata->dev_addr, mac_addr);
|
||||
|
||||
return pdata;
|
||||
}
|
||||
|
|
|
@ -903,7 +903,7 @@ static int mpc52xx_fec_probe(struct platform_device *op)
|
|||
*/
|
||||
mac_addr = of_get_mac_address(np);
|
||||
if (!IS_ERR(mac_addr)) {
|
||||
memcpy(ndev->dev_addr, mac_addr, ETH_ALEN);
|
||||
ether_addr_copy(ndev->dev_addr, mac_addr);
|
||||
} else {
|
||||
struct mpc52xx_fec __iomem *fec = priv->fec;
|
||||
|
||||
|
|
|
@ -729,7 +729,7 @@ static int mac_probe(struct platform_device *_of_dev)
|
|||
err = -EINVAL;
|
||||
goto _return_of_get_parent;
|
||||
}
|
||||
memcpy(mac_dev->addr, mac_addr, sizeof(mac_dev->addr));
|
||||
ether_addr_copy(mac_dev->addr, mac_addr);
|
||||
|
||||
/* Get the port handles */
|
||||
nph = of_count_phandle_with_args(mac_node, "fsl,fman-ports", NULL);
|
||||
|
|
|
@ -1015,7 +1015,7 @@ static int fs_enet_probe(struct platform_device *ofdev)
|
|||
|
||||
mac_addr = of_get_mac_address(ofdev->dev.of_node);
|
||||
if (!IS_ERR(mac_addr))
|
||||
memcpy(ndev->dev_addr, mac_addr, ETH_ALEN);
|
||||
ether_addr_copy(ndev->dev_addr, mac_addr);
|
||||
|
||||
ret = fep->ops->allocate_bd(ndev);
|
||||
if (ret)
|
||||
|
|
|
@ -873,7 +873,7 @@ static int gfar_of_init(struct platform_device *ofdev, struct net_device **pdev)
|
|||
mac_addr = of_get_mac_address(np);
|
||||
|
||||
if (!IS_ERR(mac_addr))
|
||||
memcpy(dev->dev_addr, mac_addr, ETH_ALEN);
|
||||
ether_addr_copy(dev->dev_addr, mac_addr);
|
||||
|
||||
if (model && !strcasecmp(model, "TSEC"))
|
||||
priv->device_flags |= FSL_GIANFAR_DEV_HAS_GIGABIT |
|
||||
|
|
|
@ -3911,7 +3911,7 @@ static int ucc_geth_probe(struct platform_device* ofdev)
|
|||
|
||||
mac_addr = of_get_mac_address(np);
|
||||
if (!IS_ERR(mac_addr))
|
||||
memcpy(dev->dev_addr, mac_addr, ETH_ALEN);
|
||||
ether_addr_copy(dev->dev_addr, mac_addr);
|
||||
|
||||
ugeth->ug_info = ug_info;
|
||||
ugeth->dev = device;
|
||||
|
|
|
@ -2750,7 +2750,7 @@ static int mv643xx_eth_shared_of_add_port(struct platform_device *pdev,
|
|||
|
||||
mac_addr = of_get_mac_address(pnp);
|
||||
if (!IS_ERR(mac_addr))
|
||||
memcpy(ppd.mac_addr, mac_addr, ETH_ALEN);
|
||||
ether_addr_copy(ppd.mac_addr, mac_addr);
|
||||
|
||||
mv643xx_eth_property(pnp, "tx-queue-size", ppd.tx_queue_size);
|
||||
mv643xx_eth_property(pnp, "tx-sram-addr", ppd.tx_sram_addr);
|
||||
|
|
|
@ -4565,7 +4565,7 @@ static int mvneta_probe(struct platform_device *pdev)
|
|||
dt_mac_addr = of_get_mac_address(dn);
|
||||
if (!IS_ERR(dt_mac_addr)) {
|
||||
mac_from = "device tree";
|
||||
memcpy(dev->dev_addr, dt_mac_addr, ETH_ALEN);
|
||||
ether_addr_copy(dev->dev_addr, dt_mac_addr);
|
||||
} else {
|
||||
mvneta_get_mac_addr(pp, hw_mac_addr);
|
||||
if (is_valid_ether_addr(hw_mac_addr)) {
|
||||
|
|
|
@ -4805,7 +4805,7 @@ static struct net_device *sky2_init_netdev(struct sky2_hw *hw, unsigned port,
|
|||
*/
|
||||
iap = of_get_mac_address(hw->pdev->dev.of_node);
|
||||
if (!IS_ERR(iap))
|
||||
memcpy(dev->dev_addr, iap, ETH_ALEN);
|
||||
ether_addr_copy(dev->dev_addr, iap);
|
||||
else
|
||||
memcpy_fromio(dev->dev_addr, hw->regs + B2_MAC_1 + port * 8,
|
||||
ETH_ALEN);
|
||||
|
|
|
@ -426,7 +426,7 @@ static void ks8851_init_mac(struct ks8851_net *ks)
|
|||
|
||||
mac_addr = of_get_mac_address(ks->spidev->dev.of_node);
|
||||
if (!IS_ERR(mac_addr)) {
|
||||
memcpy(dev->dev_addr, mac_addr, ETH_ALEN);
|
||||
ether_addr_copy(dev->dev_addr, mac_addr);
|
||||
ks8851_write_mac_addr(dev);
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -1328,7 +1328,7 @@ static int ks8851_probe(struct platform_device *pdev)
|
|||
if (pdev->dev.of_node) {
|
||||
mac = of_get_mac_address(pdev->dev.of_node);
|
||||
if (!IS_ERR(mac))
|
||||
memcpy(ks->mac_addr, mac, ETH_ALEN);
|
||||
ether_addr_copy(ks->mac_addr, mac);
|
||||
} else {
|
||||
struct ks8851_mll_platform_data *pdata;
|
||||
|
||||
|
|
|
@ -1369,7 +1369,7 @@ static int lpc_eth_drv_probe(struct platform_device *pdev)
|
|||
if (!is_valid_ether_addr(ndev->dev_addr)) {
|
||||
const char *macaddr = of_get_mac_address(np);
|
||||
if (!IS_ERR(macaddr))
|
||||
memcpy(ndev->dev_addr, macaddr, ETH_ALEN);
|
||||
ether_addr_copy(ndev->dev_addr, macaddr);
|
||||
}
|
||||
if (!is_valid_ether_addr(ndev->dev_addr))
|
||||
eth_hw_addr_random(ndev);
|
||||
|
|
|
@ -3193,7 +3193,7 @@ static struct sh_eth_plat_data *sh_eth_parse_dt(struct device *dev)
|
|||
|
||||
mac_addr = of_get_mac_address(np);
|
||||
if (!IS_ERR(mac_addr))
|
||||
memcpy(pdata->mac_addr, mac_addr, ETH_ALEN);
|
||||
ether_addr_copy(pdata->mac_addr, mac_addr);
|
||||
|
||||
pdata->no_ether_link =
|
||||
of_property_read_bool(np, "renesas,no-ether-link");
|
||||
|
|
|
@ -2233,7 +2233,7 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
|
|||
no_phy_slave:
|
||||
mac_addr = of_get_mac_address(slave_node);
|
||||
if (!IS_ERR(mac_addr)) {
|
||||
memcpy(slave_data->mac_addr, mac_addr, ETH_ALEN);
|
||||
ether_addr_copy(slave_data->mac_addr, mac_addr);
|
||||
} else {
|
||||
ret = ti_cm_get_macid(&pdev->dev, i,
|
||||
slave_data->mac_addr);
|
||||
|
|
|
@ -361,7 +361,7 @@ static void temac_do_set_mac_address(struct net_device *ndev)
|
|||
|
||||
static int temac_init_mac_address(struct net_device *ndev, const void *address)
|
||||
{
|
||||
memcpy(ndev->dev_addr, address, ETH_ALEN);
|
||||
ether_addr_copy(ndev->dev_addr, address);
|
||||
if (!is_valid_ether_addr(ndev->dev_addr))
|
||||
eth_hw_addr_random(ndev);
|
||||
temac_do_set_mac_address(ndev);
|
||||
|
|
|
@ -1167,7 +1167,7 @@ static int xemaclite_of_probe(struct platform_device *ofdev)
|
|||
|
||||
if (!IS_ERR(mac_address)) {
|
||||
/* Set the MAC address. */
|
||||
memcpy(ndev->dev_addr, mac_address, ETH_ALEN);
|
||||
ether_addr_copy(ndev->dev_addr, mac_address);
|
||||
} else {
|
||||
dev_warn(dev, "No MAC address found, using random\n");
|
||||
eth_hw_addr_random(ndev);
|
||||
|
|
Loading…
Reference in New Issue