lkml.org 
[lkml]   [2020]   [Nov]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.9 051/255] can: ti_hecc: ti_hecc_probe(): add missed clk_disable_unprepare() in error path
    Date
    From: Zhang Changzhong <zhangchangzhong@huawei.com>

    [ Upstream commit e002103b36a695f7cb6048b96da73e66c86ddffb ]

    The driver forgets to call clk_disable_unprepare() in error path after
    a success calling for clk_prepare_enable().

    Fix it by adding a clk_disable_unprepare() in error path.

    Signed-off-by: Zhang Changzhong <zhangchangzhong@huawei.com>
    Link: https://lore.kernel.org/r/1594973079-27743-1-git-send-email-zhangchangzhong@huawei.com
    Fixes: befa60113ce7 ("can: ti_hecc: add missing prepare and unprepare of the clock")
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/can/ti_hecc.c | 8 +++++---
    1 file changed, 5 insertions(+), 3 deletions(-)

    diff --git a/drivers/net/can/ti_hecc.c b/drivers/net/can/ti_hecc.c
    index 94b1491b569f3..228ecd45ca6c1 100644
    --- a/drivers/net/can/ti_hecc.c
    +++ b/drivers/net/can/ti_hecc.c
    @@ -950,7 +950,7 @@ static int ti_hecc_probe(struct platform_device *pdev)
    err = clk_prepare_enable(priv->clk);
    if (err) {
    dev_err(&pdev->dev, "clk_prepare_enable() failed\n");
    - goto probe_exit_clk;
    + goto probe_exit_release_clk;
    }

    priv->offload.mailbox_read = ti_hecc_mailbox_read;
    @@ -959,7 +959,7 @@ static int ti_hecc_probe(struct platform_device *pdev)
    err = can_rx_offload_add_timestamp(ndev, &priv->offload);
    if (err) {
    dev_err(&pdev->dev, "can_rx_offload_add_timestamp() failed\n");
    - goto probe_exit_clk;
    + goto probe_exit_disable_clk;
    }

    err = register_candev(ndev);
    @@ -977,7 +977,9 @@ static int ti_hecc_probe(struct platform_device *pdev)

    probe_exit_offload:
    can_rx_offload_del(&priv->offload);
    -probe_exit_clk:
    +probe_exit_disable_clk:
    + clk_disable_unprepare(priv->clk);
    +probe_exit_release_clk:
    clk_put(priv->clk);
    probe_exit_candev:
    free_candev(ndev);
    --
    2.27.0


    \
     
     \ /
      Last update: 2020-11-17 14:39    [W:2.659 / U:0.216 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site