Message ID | 20210918172632.1887059-1-chunkeey@gmail.com (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | net: bgmac-bcma: handle deferred probe error due to mac-address | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Guessed tree name to be net-next |
netdev/subject_prefix | warning | Target tree name not specified in the subject |
netdev/cc_maintainers | success | CCed 5 of 5 maintainers |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 8 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
On Sat, Sep 18, 2021 at 07:26:32PM +0200, Christian Lamparter wrote: > Since the inclusion of nvmem into the helper function > of_get_mac_address() by > commit d01f449c008a ("of_net: add NVMEM support to of_get_mac_address") > it has been possible to receive a -EPROBE_DEFER return code during boot. Please use this commit as the Fixes: tag. Also, please base this in net, not next-next, and put net in subject, as described in the netdev FAQ. Andrew
diff --git a/drivers/net/ethernet/broadcom/bgmac-bcma.c b/drivers/net/ethernet/broadcom/bgmac-bcma.c index 85fa0ab7201c..9513cfb5ba58 100644 --- 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_device *core) 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) {
Since the inclusion of nvmem into the helper function of_get_mac_address() by commit d01f449c008a ("of_net: add NVMEM support to of_get_mac_address") it has been possible to receive a -EPROBE_DEFER return code during boot. Previously, this resulted in setting a random ethernet address. This exact issue happened on my Meraki MR32. This is because the nvmem provider is an EEPROM (at24) which gets instantiated once the module driver is loaded... which of course happens much later when the filesystem becomes available. With this patch, the probe will propagate this error code. The driver subsystem will reschedule the probe at a later time, once the nvmem is in place and ready to deliver the requested mac-address. Signed-off-by: Christian Lamparter <chunkeey@gmail.com> --- drivers/net/ethernet/broadcom/bgmac-bcma.c | 2 ++ 1 file changed, 2 insertions(+)