| From a1bcb64ae90ddcf575f7e50385a809852205f348 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Tue, 5 Apr 2022 02:04:04 +0200 |
| Subject: net: ethernet: mv643xx: Fix over zealous checking |
| of_get_mac_address() |
| |
| From: Andrew Lunn <andrew@lunn.ch> |
| |
| [ Upstream commit 11f8e7c122ce013fa745029fa8c94c6db69c2e54 ] |
| |
| There is often not a MAC address available in an EEPROM accessible by |
| Linux with Marvell devices. Instead the bootload has the MAC address |
| and directly programs it into the hardware. So don't consider an error |
| from of_get_mac_address() has fatal. However, the check was added for |
| the case where there is a MAC address in an the EEPROM, but the EEPROM |
| has not probed yet, and -EPROBE_DEFER is returned. In that case the |
| error should be returned. So make the check specific to this error |
| code. |
| |
| Cc: Mauri Sandberg <maukka@ext.kapsi.fi> |
| Reported-by: Thomas Walther <walther-it@gmx.de> |
| Fixes: 42404d8f1c01 ("net: mv643xx_eth: process retval from of_get_mac_address") |
| Signed-off-by: Andrew Lunn <andrew@lunn.ch> |
| Link: https://lore.kernel.org/r/20220405000404.3374734-1-andrew@lunn.ch |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/net/ethernet/marvell/mv643xx_eth.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c |
| index 0636783f7bc0..ffa131d2bb52 100644 |
| --- a/drivers/net/ethernet/marvell/mv643xx_eth.c |
| +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c |
| @@ -2747,7 +2747,7 @@ static int mv643xx_eth_shared_of_add_port(struct platform_device *pdev, |
| } |
| |
| ret = of_get_mac_address(pnp, ppd.mac_addr); |
| - if (ret) |
| + if (ret == -EPROBE_DEFER) |
| return ret; |
| |
| mv643xx_eth_property(pnp, "tx-queue-size", ppd.tx_queue_size); |
| -- |
| 2.35.1 |
| |