lkml.org 
[lkml]   [2021]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 304/917] spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in bcm_qspi_probe()
    Date
    From: Yang Yingliang <yangyingliang@huawei.com>

    [ Upstream commit ca9b8f56ec089d3a436050afefd17b7237301f47 ]

    Fix the missing clk_disable_unprepare() before return
    from bcm_qspi_probe() in the error handling case.

    Reported-by: Hulk Robot <hulkci@huawei.com>
    Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
    Link: https://lore.kernel.org/r/20211018073413.2029081-1-yangyingliang@huawei.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/spi/spi-bcm-qspi.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    diff --git a/drivers/spi/spi-bcm-qspi.c b/drivers/spi/spi-bcm-qspi.c
    index 3043677ba2226..ea1865c08fc22 100644
    --- a/drivers/spi/spi-bcm-qspi.c
    +++ b/drivers/spi/spi-bcm-qspi.c
    @@ -1460,7 +1460,7 @@ int bcm_qspi_probe(struct platform_device *pdev,
    &qspi->dev_ids[val]);
    if (ret < 0) {
    dev_err(&pdev->dev, "IRQ %s not found\n", name);
    - goto qspi_probe_err;
    + goto qspi_unprepare_err;
    }

    qspi->dev_ids[val].dev = qspi;
    @@ -1475,7 +1475,7 @@ int bcm_qspi_probe(struct platform_device *pdev,
    if (!num_ints) {
    dev_err(&pdev->dev, "no IRQs registered, cannot init driver\n");
    ret = -EINVAL;
    - goto qspi_probe_err;
    + goto qspi_unprepare_err;
    }

    bcm_qspi_hw_init(qspi);
    @@ -1499,6 +1499,7 @@ int bcm_qspi_probe(struct platform_device *pdev,

    qspi_reg_err:
    bcm_qspi_hw_uninit(qspi);
    +qspi_unprepare_err:
    clk_disable_unprepare(qspi->clk);
    qspi_probe_err:
    kfree(qspi->dev_ids);
    --
    2.33.0


    \
     
     \ /
      Last update: 2021-11-16 00:38    [W:3.406 / U:0.360 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site