net: gianfar: fix NVMEM mac address
authorRosen Penev <rosenp@gmail.com>
Tue, 10 Sep 2024 22:09:13 +0000 (15:09 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 11 Sep 2024 23:03:14 +0000 (16:03 -0700)
If nvmem loads after the ethernet driver, mac address assignments will
not take effect. of_get_ethdev_address returns EPROBE_DEFER in such a
case so we need to handle that to avoid eth_hw_addr_random.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20240910220913.14101-1-rosenp@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/freescale/gianfar.c

index 2baef59f741dda43c27e382de7395dc9a5e485e9..ecb1703ea150fe9d9e2417686da237dc10ba6062 100644 (file)
@@ -754,6 +754,8 @@ static int gfar_of_init(struct platform_device *ofdev, struct net_device **pdev)
                priv->device_flags |= FSL_GIANFAR_DEV_HAS_BUF_STASHING;
 
        err = of_get_ethdev_address(np, dev);
+       if (err == -EPROBE_DEFER)
+               goto err_grp_init;
        if (err) {
                eth_hw_addr_random(dev);
                dev_info(&ofdev->dev, "Using random MAC address: %pM\n", dev->dev_addr);