]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: amd: acp3x-rt5682-max9836: Add missing error check for clock acquisition
authorChen Ni <nichen@iscas.ac.cn>
Tue, 10 Mar 2026 02:42:46 +0000 (10:42 +0800)
committerMark Brown <broonie@kernel.org>
Wed, 11 Mar 2026 13:21:01 +0000 (13:21 +0000)
The acp3x_5682_init() function did not check the return value of
clk_get(), which could lead to dereferencing error pointers in
rt5682_clk_enable().

Fix this by:
1. Changing clk_get() to the device-managed devm_clk_get().
2. Adding proper IS_ERR() checks for both clock acquisitions.

Fixes: 6b8e4e7db3cd ("ASoC: amd: Add machine driver for Raven based platform")
Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
Link: https://patch.msgid.link/20260310024246.2153827-1-nichen@iscas.ac.cn
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/amd/acp3x-rt5682-max9836.c

index 4ca1978020a9628fd9ed2af9ec63f2b5081cd461..d1eb6f12a18302201a6924bf4c0920caecac15d3 100644 (file)
@@ -94,8 +94,13 @@ static int acp3x_5682_init(struct snd_soc_pcm_runtime *rtd)
                return ret;
        }
 
-       rt5682_dai_wclk = clk_get(component->dev, "rt5682-dai-wclk");
-       rt5682_dai_bclk = clk_get(component->dev, "rt5682-dai-bclk");
+       rt5682_dai_wclk = devm_clk_get(component->dev, "rt5682-dai-wclk");
+       if (IS_ERR(rt5682_dai_wclk))
+               return PTR_ERR(rt5682_dai_wclk);
+
+       rt5682_dai_bclk = devm_clk_get(component->dev, "rt5682-dai-bclk");
+       if (IS_ERR(rt5682_dai_bclk))
+               return PTR_ERR(rt5682_dai_bclk);
 
        ret = snd_soc_card_jack_new_pins(card, "Headset Jack",
                                         SND_JACK_HEADSET |