[PATCH v1] net: dwc_eth_xgmac: Return -ENODEV when phy_connect() fails

Boon Khai Ng boon.khai.ng at altera.com
Tue Jul 14 09:19:27 CEST 2026


When multiple Ethernet controllers are enabled in the device tree,
but only one controller is actually present in hardware, the
non-existent controller still attempts to connect to a PHY.

In this case, phy_connect() may return NULL without setting an
error code. The current driver only logs the failure but does not
propagate an error, causing the initialization flow to continue
with an invalid PHY handle.

This leads to failures later in the initialization sequence.

Fix this by explicitly setting ret = -ENODEV when phy_connect()
returns NULL, ensuring the driver exits cleanly on failure.

Signed-off-by: Boon Khai Ng <boon.khai.ng at altera.com>
---
 drivers/net/dwc_eth_xgmac.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/dwc_eth_xgmac.c b/drivers/net/dwc_eth_xgmac.c
index 311b57011c3..4e664a88f68 100644
--- a/drivers/net/dwc_eth_xgmac.c
+++ b/drivers/net/dwc_eth_xgmac.c
@@ -507,6 +507,7 @@ static int xgmac_start(struct udevice *dev)
 					 xgmac->config->interface(dev));
 		if (!xgmac->phy) {
 			pr_err("%s phy_connect() failed\n", dev->name);
+			ret = -ENODEV;
 			goto err_stop_resets;
 		}
 
-- 
2.43.7



More information about the U-Boot mailing list