Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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>

authored by

Russell King (Oracle) and committed by
Jakub Kicinski
3a468736 dc010e1b

+10 -2
+10 -2
drivers/net/ethernet/stmicro/stmmac/dwmac-qcom-ethqos.c
··· 659 659 return ret; 660 660 661 661 ret = phy_power_on(ethqos->serdes_phy); 662 - if (ret) 662 + if (ret) { 663 + phy_exit(ethqos->serdes_phy); 663 664 return ret; 665 + } 664 666 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; 666 674 } 667 675 668 676 static void qcom_ethqos_serdes_powerdown(struct net_device *ndev, void *priv)