]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ASoC: codecs: va-macro: fix resource leak in probe error path
authorHaotian Zhang <vulab@iscas.ac.cn>
Thu, 6 Nov 2025 14:31:14 +0000 (22:31 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 24 Nov 2025 09:35:53 +0000 (10:35 +0100)
[ Upstream commit 3dc8c73365d3ca25c99e7e1a0f493039d7291df5 ]

In the commit referenced by the Fixes tag, clk_hw_get_clk()
was added in va_macro_probe() to get the fsgen clock,
but forgot to add the corresponding clk_put() in va_macro_remove().
This leads to a clock reference leak when the driver is unloaded.

Switch to devm_clk_hw_get_clk() to automatically manage the
clock resource.

Fixes: 30097967e056 ("ASoC: codecs: va-macro: use fsgen as clock")
Suggested-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Signed-off-by: Haotian Zhang <vulab@iscas.ac.cn>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
Link: https://patch.msgid.link/20251106143114.729-1-vulab@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/codecs/lpass-va-macro.c

index c781da4762407e8e5cd1ddbf483b8dd8ad811c07..d44b5b0a80a1c887b4df35a8dc634e54613e4162 100644 (file)
@@ -1637,7 +1637,7 @@ static int va_macro_probe(struct platform_device *pdev)
        if (ret)
                goto err_clkout;
 
-       va->fsgen = clk_hw_get_clk(&va->hw, "fsgen");
+       va->fsgen = devm_clk_hw_get_clk(dev, &va->hw, "fsgen");
        if (IS_ERR(va->fsgen)) {
                ret = PTR_ERR(va->fsgen);
                goto err_clkout;