]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
pwm: stm32: Add check for clk_enable()
authorMingwei Zheng <zmw12306@gmail.com>
Sun, 15 Dec 2024 22:47:52 +0000 (17:47 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 11:46:49 +0000 (12:46 +0100)
[ Upstream commit e8c59791ebb60790c74b2c3ab520f04a8a57219a ]

Add check for the return value of clk_enable() to catch the potential
error.

Fixes: 19f1016ea960 ("pwm: stm32: Fix enable count for clk in .probe()")
Signed-off-by: Mingwei Zheng <zmw12306@gmail.com>
Signed-off-by: Jiasheng Jiang <jiashengjiangcool@gmail.com>
Link: https://lore.kernel.org/r/20241215224752.220318-1-zmw12306@gmail.com
Signed-off-by: Uwe Kleine-König <ukleinek@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/pwm/pwm-stm32.c

index 7146b3f6755bc9cae614ba57ee654d5aa56a354d..2ca2855255be1dadaeb2737d9b981fa293b08566 100644 (file)
@@ -634,8 +634,11 @@ static int stm32_pwm_probe(struct platform_device *pdev)
        priv->chip.npwm = stm32_pwm_detect_channels(priv, &num_enabled);
 
        /* Initialize clock refcount to number of enabled PWM channels. */
-       for (i = 0; i < num_enabled; i++)
-               clk_enable(priv->clk);
+       for (i = 0; i < num_enabled; i++) {
+               ret = clk_enable(priv->clk);
+               if (ret)
+                       return ret;
+       }
 
        ret = pwmchip_add(&priv->chip);
        if (ret < 0)