From 3a4687366148a58017997a750f85631292c22b3e Mon Sep 17 00:00:00 2001 From: "Russell King (Oracle)" Date: Fri, 6 Feb 2026 17:19:21 +0000 Subject: [PATCH] net: stmmac: qcom-ethqos: fix qcom_ethqos_serdes_powerup() Add cleanup for failure paths in qcom_ethqos_serdes_powerup(). This was missing calling phy_exit() and phy_power_off() at appropriate failure points. Signed-off-by: Russell King (Oracle) Reviewed-by: Vadim Fedorenko Tested-by: Mohd Ayaan Anwar Reviewed-by: Mohd Ayaan Anwar Link: https://patch.msgid.link/E1voPUH-000000083ji-25FH@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski --- .../net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c index 869f924f3cde2..af8204c0e188c 100644 --- a/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c +++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c @@ -659,10 +659,18 @@ static int qcom_ethqos_serdes_powerup(struct net_device *ndev, void *priv) return ret; ret = phy_power_on(ethqos->serdes_phy); - if (ret) + if (ret) { + phy_exit(ethqos->serdes_phy); return ret; + } - return phy_set_speed(ethqos->serdes_phy, ethqos->serdes_speed); + ret = phy_set_speed(ethqos->serdes_phy, ethqos->serdes_speed); + if (ret) { + phy_power_off(ethqos->serdes_phy); + phy_exit(ethqos->serdes_phy); + } + + return ret; } static void qcom_ethqos_serdes_powerdown(struct net_device *ndev, void *priv) -- 2.47.3