]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ASoC: ti: omap-dmic: Fix IS_ERR() vs NULL check bug in omap_dmic_select_fclk()
authorIngyu Jang <ingyujang25@korea.ac.kr>
Thu, 14 May 2026 18:52:15 +0000 (03:52 +0900)
committerMark Brown <broonie@kernel.org>
Fri, 15 May 2026 01:53:56 +0000 (10:53 +0900)
clk_get_parent() returns NULL when the clock has no parent (or when the
input clk is NULL); it never returns an ERR_PTR. The current IS_ERR(mux)
check therefore never triggers - a NULL return falls through silently
to clk_set_parent(NULL, parent_clk), which simply fails with -EINVAL.

Use a NULL check so the dedicated error path runs and the prior
clk_get() reference is released via clk_put().

Signed-off-by: Ingyu Jang <ingyujang25@korea.ac.kr>
Acked-by: Sen Wang <sen@ti.com>
Link: https://patch.msgid.link/20260514185215.3753998-1-ingyujang25@korea.ac.kr
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/ti/omap-dmic.c

index fb92bb88eb5c2b2728cca34d9f109e001ed08663..f6c393c9489d62dbe63b9536c599634d65af25ef 100644 (file)
@@ -328,7 +328,7 @@ static int omap_dmic_select_fclk(struct omap_dmic *dmic, int clk_id,
        }
 
        mux = clk_get_parent(dmic->fclk);
-       if (IS_ERR(mux)) {
+       if (!mux) {
                dev_err(dmic->dev, "can't get fck mux parent\n");
                clk_put(parent_clk);
                return -ENODEV;