]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: mvneta: support EPROBE_DEFER when reading MAC address
authorRosen Penev <rosenp@gmail.com>
Sat, 7 Mar 2026 03:17:09 +0000 (19:17 -0800)
committerJakub Kicinski <kuba@kernel.org>
Wed, 11 Mar 2026 02:02:25 +0000 (19:02 -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.

Add extra goto section to just free stats as they are allocated right
above.

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

index 9ba4aef7080c013dd5a8d2a2a5198358475a89ea..0c061fb0ed072aa192a0c5c7a3209b045540721a 100644 (file)
@@ -5620,6 +5620,8 @@ static int mvneta_probe(struct platform_device *pdev)
        }
 
        err = of_get_ethdev_address(dn, dev);
+       if (err == -EPROBE_DEFER)
+               goto err_free_stats;
        if (!err) {
                mac_from = "device tree";
        } else {
@@ -5755,6 +5757,7 @@ err_netdev:
                                       1 << pp->id);
                mvneta_bm_put(pp->bm_priv);
        }
+err_free_stats:
        free_percpu(pp->stats);
 err_free_ports:
        free_percpu(pp->ports);