| From 55146985c05f25c3dfde0261e7cd72e2d6b7aa05 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Mon, 18 Oct 2021 15:34:13 +0800 |
| Subject: spi: bcm-qspi: Fix missing clk_disable_unprepare() on error in |
| bcm_qspi_probe() |
| |
| 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 8a4be34bccfd2..8a1176efa4c85 100644 |
| --- a/drivers/spi/spi-bcm-qspi.c |
| +++ b/drivers/spi/spi-bcm-qspi.c |
| @@ -1300,7 +1300,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; |
| @@ -1315,7 +1315,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; |
| } |
| |
| /* |
| @@ -1359,6 +1359,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 |
| |