| From 446f7c27172a6841a24655750efb88e170c0a885 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 6 Nov 2025 22:31:14 +0800 |
| Subject: ASoC: codecs: va-macro: fix resource leak in probe error path |
| |
| From: Haotian Zhang <vulab@iscas.ac.cn> |
| |
| [ 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 | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| diff --git a/sound/soc/codecs/lpass-va-macro.c b/sound/soc/codecs/lpass-va-macro.c |
| index c781da4762407..d44b5b0a80a1c 100644 |
| --- a/sound/soc/codecs/lpass-va-macro.c |
| +++ b/sound/soc/codecs/lpass-va-macro.c |
| @@ -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; |
| -- |
| 2.51.0 |
| |