diff options
author | Alexey Khoroshilov <khoroshilov@ispras.ru> | 2019-01-26 14:48:57 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-01-28 02:03:38 -0500 |
commit | c69c29a1a0a8f68cd87e98ba4a5a79fb8ef2a58c (patch) | |
tree | 37cc3609ae7bb45dc80cbf4f6af770deab3c325f | |
parent | 417c8045c1e9d1a8697052342606ed596835e5e5 (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.c | 4 |
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); |