Skip to content

Commit 3a46873

Browse files
Russell King (Oracle)kuba-moo
authored andcommitted
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) <rmk+kernel@armlinux.org.uk> Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev> Tested-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com> Reviewed-by: Mohd Ayaan Anwar <mohd.anwar@oss.qualcomm.com> Link: https://patch.msgid.link/E1voPUH-000000083ji-25FH@rmk-PC.armlinux.org.uk Signed-off-by: Jakub Kicinski <kuba@kernel.org>
1 parent dc010e1 commit 3a46873

1 file changed

Lines changed: 10 additions & 2 deletions

File tree

drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -659,10 +659,18 @@ static int qcom_ethqos_serdes_powerup(struct net_device *ndev, void *priv)
659659
return ret;
660660

661661
ret = phy_power_on(ethqos->serdes_phy);
662-
if (ret)
662+
if (ret) {
663+
phy_exit(ethqos->serdes_phy);
663664
return ret;
665+
}
664666

665-
return phy_set_speed(ethqos->serdes_phy, ethqos->serdes_speed);
667+
ret = phy_set_speed(ethqos->serdes_phy, ethqos->serdes_speed);
668+
if (ret) {
669+
phy_power_off(ethqos->serdes_phy);
670+
phy_exit(ethqos->serdes_phy);
671+
}
672+
673+
return ret;
666674
}
667675

668676
static void qcom_ethqos_serdes_powerdown(struct net_device *ndev, void *priv)

0 commit comments

Comments
 (0)