]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
soc: imx8m: Fix error handling for clk_prepare_enable()
authorPeng Fan <peng.fan@nxp.com>
Tue, 13 Jan 2026 22:12:41 +0000 (06:12 +0800)
committerShawn Guo <shawnguo@kernel.org>
Sun, 18 Jan 2026 02:33:42 +0000 (10:33 +0800)
imx8m_soc_prepare() directly returns the result of clk_prepare_enable(),
which skips proper cleanup if the clock enable fails. Check the return
value of clk_prepare_enable() and release resources if failure.

Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <error27@gmail.com>
Closes: https://lore.kernel.org/r/202601111406.ZVV3YaiU-lkp@intel.com/
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Reviewed-by: Marco Felsch <m.felsch@pengutronix.de>
Reviewed-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
drivers/soc/imx/soc-imx8m.c

index 04a1b60f2f2b52cc374714f9a1205496c1762f39..8e2322999f0996d2723768469c6893b0ea22eb9d 100644 (file)
@@ -148,7 +148,11 @@ static int imx8m_soc_prepare(struct platform_device *pdev, const char *ocotp_com
                goto err_clk;
        }
 
-       return clk_prepare_enable(drvdata->clk);
+       ret = clk_prepare_enable(drvdata->clk);
+       if (ret)
+               goto err_clk;
+
+       return 0;
 
 err_clk:
        iounmap(drvdata->ocotp_base);