mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-27 17:18:59 +00:00
f2f42a54e8
The qca8k patch series brings the numbering to 799. This patch renames 7xx patches to create space for more backports to be added. Signed-off-by: Matthew Hagan <mnhagan88@gmail.com> [rename 729->719] Signed-off-by: Adrian Schmutzler <freifunk@adrianschmutzler.de>
43 lines
1.6 KiB
Diff
43 lines
1.6 KiB
Diff
From 029497e66bdc762e001880e4c85a91f35a54b1e2 Mon Sep 17 00:00:00 2001
|
|
From: Christian Lamparter <chunkeey@gmail.com>
|
|
Date: Sun, 19 Sep 2021 13:57:25 +0200
|
|
Subject: [PATCH] net: bgmac-bcma: handle deferred probe error due to
|
|
mac-address
|
|
MIME-Version: 1.0
|
|
Content-Type: text/plain; charset=UTF-8
|
|
Content-Transfer-Encoding: 8bit
|
|
|
|
Due to the inclusion of nvmem handling into the mac-address getter
|
|
function of_get_mac_address() by
|
|
commit d01f449c008a ("of_net: add NVMEM support to of_get_mac_address")
|
|
it is now possible to get a -EPROBE_DEFER return code. Which did cause
|
|
bgmac to assign a random ethernet address.
|
|
|
|
This exact issue happened on my Meraki MR32. The nvmem provider is
|
|
an EEPROM (at24c64) which gets instantiated once the module
|
|
driver is loaded... This happens once the filesystem becomes available.
|
|
|
|
With this patch, bgmac_probe() will propagate the -EPROBE_DEFER error.
|
|
Then the driver subsystem will reschedule the probe at a later time.
|
|
|
|
Cc: Petr Štetiar <ynezz@true.cz>
|
|
Cc: Michael Walle <michael@walle.cc>
|
|
Fixes: d01f449c008a ("of_net: add NVMEM support to of_get_mac_address")
|
|
Signed-off-by: Christian Lamparter <chunkeey@gmail.com>
|
|
Signed-off-by: David S. Miller <davem@davemloft.net>
|
|
---
|
|
drivers/net/ethernet/broadcom/bgmac-bcma.c | 2 ++
|
|
1 file changed, 2 insertions(+)
|
|
|
|
--- a/drivers/net/ethernet/broadcom/bgmac-bcma.c
|
|
+++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c
|
|
@@ -129,6 +129,8 @@ static int bgmac_probe(struct bcma_devic
|
|
bcma_set_drvdata(core, bgmac);
|
|
|
|
err = of_get_mac_address(bgmac->dev->of_node, bgmac->net_dev->dev_addr);
|
|
+ if (err == -EPROBE_DEFER)
|
|
+ return err;
|
|
|
|
/* If no MAC address assigned via device tree, check SPROM */
|
|
if (err) {
|