1 From 0ccab5e0d9b824e2df387c27a3be9178d23a19d0 Mon Sep 17 00:00:00 2001
2 From: Sasha Levin <sashal@kernel.org>
3 Date: Fri, 17 Jul 2020 16:04:39 +0800
4 Subject: can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in
7 From: Zhang Changzhong <zhangchangzhong@huawei.com>
9 [ Upstream commit e002103b36a695f7cb6048b96da73e66c86ddffb ]
11 The driver forgets to call clk_disable_unprepare() in error path after
12 a success calling for clk_prepare_enable().
14 Fix it by adding a clk_disable_unprepare() in error path.
16 Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
17 Link: https://lore.kernel.org/r/1594973079-27743-1-git-send-email-zhangchangzhong@huawei.com
18 Fixes: befa60113ce7 ("can: ti_hecc: add missing prepare and unprepare of the clock")
19 Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
20 Signed-off-by: Sasha Levin <sashal@kernel.org>
22 drivers/net/can/ti_hecc.c | 8 +++++---
23 1 file changed, 5 insertions(+), 3 deletions(-)
25 diff --git a/drivers/net/can/ti_hecc.c b/drivers/net/can/ti_hecc.c
26 index 31ad364a89bbe..d3a7631eecaf2 100644
27 --- a/drivers/net/can/ti_hecc.c
28 +++ b/drivers/net/can/ti_hecc.c
29 @@ -936,7 +936,7 @@ static int ti_hecc_probe(struct platform_device *pdev)
30 err = clk_prepare_enable(priv->clk);
32 dev_err(&pdev->dev, "clk_prepare_enable() failed\n");
33 - goto probe_exit_clk;
34 + goto probe_exit_release_clk;
37 priv->offload.mailbox_read = ti_hecc_mailbox_read;
38 @@ -945,7 +945,7 @@ static int ti_hecc_probe(struct platform_device *pdev)
39 err = can_rx_offload_add_timestamp(ndev, &priv->offload);
41 dev_err(&pdev->dev, "can_rx_offload_add_timestamp() failed\n");
42 - goto probe_exit_clk;
43 + goto probe_exit_disable_clk;
46 err = register_candev(ndev);
47 @@ -963,7 +963,9 @@ static int ti_hecc_probe(struct platform_device *pdev)
50 can_rx_offload_del(&priv->offload);
52 +probe_exit_disable_clk:
53 + clk_disable_unprepare(priv->clk);
54 +probe_exit_release_clk: