Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

memory: atmel-sdramc: Fix missing clk_disable_unprepare in atmel_ramc_probe()

The clk_disable_unprepare() should be called in the error handling
of caps->has_mpddr_clk, fix it by replacing devm_clk_get and
clk_prepare_enable by devm_clk_get_enabled.

Fixes: e81b6abebc87 ("memory: add a driver for atmel ram controllers")
Signed-off-by: Gaosheng Cui <cuigaosheng1@huawei.com>
Link: https://lore.kernel.org/r/20221125073757.3535219-1-cuigaosheng1@huawei.com
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

authored by

Gaosheng Cui and committed by
Krzysztof Kozlowski
340cb392 ef86b2c2

+2 -4
+2 -4
drivers/memory/atmel-sdramc.c
··· 47 47 caps = of_device_get_match_data(&pdev->dev); 48 48 49 49 if (caps->has_ddrck) { 50 - clk = devm_clk_get(&pdev->dev, "ddrck"); 50 + clk = devm_clk_get_enabled(&pdev->dev, "ddrck"); 51 51 if (IS_ERR(clk)) 52 52 return PTR_ERR(clk); 53 - clk_prepare_enable(clk); 54 53 } 55 54 56 55 if (caps->has_mpddr_clk) { 57 - clk = devm_clk_get(&pdev->dev, "mpddr"); 56 + clk = devm_clk_get_enabled(&pdev->dev, "mpddr"); 58 57 if (IS_ERR(clk)) { 59 58 pr_err("AT91 RAMC: couldn't get mpddr clock\n"); 60 59 return PTR_ERR(clk); 61 60 } 62 - clk_prepare_enable(clk); 63 61 } 64 62 65 63 return 0;