summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Khoroshilov <khoroshilov@ispras.ru>2019-01-26 14:48:57 -0500
committerDavid S. Miller <davem@davemloft.net>2019-01-28 02:03:38 -0500
commitc69c29a1a0a8f68cd87e98ba4a5a79fb8ef2a58c (patch)
tree37cc3609ae7bb45dc80cbf4f6af770deab3c325f
parent417c8045c1e9d1a8697052342606ed596835e5e5 (diff)
net: stmmac: dwmac-rk: fix error handling in rk_gmac_powerup()
If phy_power_on() fails in rk_gmac_powerup(), clocks are left enabled. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
index 7b923362ee55..3b174eae77c1 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-rk.c
@@ -1342,8 +1342,10 @@ static int rk_gmac_powerup(struct rk_priv_data *bsp_priv)
1342 } 1342 }
1343 1343
1344 ret = phy_power_on(bsp_priv, true); 1344 ret = phy_power_on(bsp_priv, true);
1345 if (ret) 1345 if (ret) {
1346 gmac_clk_enable(bsp_priv, false);
1346 return ret; 1347 return ret;
1348 }
1347 1349
1348 pm_runtime_enable(dev); 1350 pm_runtime_enable(dev);
1349 pm_runtime_get_sync(dev); 1351 pm_runtime_get_sync(dev);