Message ID | 1550265654-6626-1-git-send-email-khoroshilov@ispras.ru |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
Series | net: mv643xx_eth: disable clk on error path in mv643xx_eth_shared_probe() | expand |
On 16.02.2019 0:20, Alexey Khoroshilov wrote: > If mv643xx_eth_shared_of_probe() fails, mv643xx_eth_shared_probe() > leaves clk undisabled. Enabled, that is? :-) > Found by Linux Driver Verification project (linuxtesting.org). > > Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> [...] MBR, Sergei
From: Alexey Khoroshilov <khoroshilov@ispras.ru> Date: Sat, 16 Feb 2019 00:20:54 +0300 > If mv643xx_eth_shared_of_probe() fails, mv643xx_eth_shared_probe() > leaves clk undisabled. > > Found by Linux Driver Verification project (linuxtesting.org). > > Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> Applied with undisabled changed to enabled.
diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c index 2f427271a793..292a668ce88e 100644 --- a/drivers/net/ethernet/marvell/mv643xx_eth.c +++ b/drivers/net/ethernet/marvell/mv643xx_eth.c @@ -2879,7 +2879,7 @@ static int mv643xx_eth_shared_probe(struct platform_device *pdev) ret = mv643xx_eth_shared_of_probe(pdev); if (ret) - return ret; + goto err_put_clk; pd = dev_get_platdata(&pdev->dev); msp->tx_csum_limit = (pd != NULL && pd->tx_csum_limit) ? @@ -2887,6 +2887,11 @@ static int mv643xx_eth_shared_probe(struct platform_device *pdev) infer_hw_params(msp); return 0; + +err_put_clk: + if (!IS_ERR(msp->clk)) + clk_disable_unprepare(msp->clk); + return ret; } static int mv643xx_eth_shared_remove(struct platform_device *pdev)
If mv643xx_eth_shared_of_probe() fails, mv643xx_eth_shared_probe() leaves clk undisabled. Found by Linux Driver Verification project (linuxtesting.org). Signed-off-by: Alexey Khoroshilov <khoroshilov@ispras.ru> --- drivers/net/ethernet/marvell/mv643xx_eth.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-)