| From 3ef8e98d77e4fe6875695f880d76a486a4a7d915 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Sun, 13 Jun 2021 13:29:32 +0800 |
| Subject: spi: meson-spicc: fix a wrong goto jump for avoiding memory leak. |
| |
| From: zpershuai <zpershuai@gmail.com> |
| |
| [ Upstream commit 95730d5eb73170a6d225a9998c478be273598634 ] |
| |
| In meson_spifc_probe function, when enable the device pclk clock is |
| error, it should use clk_disable_unprepare to release the core clock. |
| |
| Signed-off-by: zpershuai <zpershuai@gmail.com> |
| Reviewed-by: Neil Armstrong <narmstrong@baylibre.com> |
| Link: https://lore.kernel.org/r/1623562172-22056-1-git-send-email-zpershuai@gmail.com |
| Signed-off-by: Mark Brown <broonie@kernel.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/spi/spi-meson-spicc.c | 6 ++++-- |
| 1 file changed, 4 insertions(+), 2 deletions(-) |
| |
| diff --git a/drivers/spi/spi-meson-spicc.c b/drivers/spi/spi-meson-spicc.c |
| index ecba6b4a5d85..51aef2c6e966 100644 |
| --- a/drivers/spi/spi-meson-spicc.c |
| +++ b/drivers/spi/spi-meson-spicc.c |
| @@ -725,7 +725,7 @@ static int meson_spicc_probe(struct platform_device *pdev) |
| ret = clk_prepare_enable(spicc->pclk); |
| if (ret) { |
| dev_err(&pdev->dev, "pclk clock enable failed\n"); |
| - goto out_master; |
| + goto out_core_clk; |
| } |
| |
| device_reset_optional(&pdev->dev); |
| @@ -764,9 +764,11 @@ static int meson_spicc_probe(struct platform_device *pdev) |
| return 0; |
| |
| out_clk: |
| - clk_disable_unprepare(spicc->core); |
| clk_disable_unprepare(spicc->pclk); |
| |
| +out_core_clk: |
| + clk_disable_unprepare(spicc->core); |
| + |
| out_master: |
| spi_master_put(master); |
| |
| -- |
| 2.30.2 |
| |