hwrng: stm32 - add missing clk_disable_unprepare() in stm32_rng_init()
authorYang Yingliang <yangyingliang@huawei.com>
Fri, 1 Dec 2023 08:20:48 +0000 (16:20 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 8 Dec 2023 03:59:44 +0000 (11:59 +0800)
Add clk_disable_unprepare() in the error path in stm32_rng_init().

Fixes: 6b85a7e141cb ("hwrng: stm32 - implement STM32MP13x support")
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Reviewed-by: Gatien Chevallier <gatien.chevallier@foss.st.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/char/hw_random/stm32-rng.c

index 41e1dbea5d2ebb454801e51a0e172c74f94d4be5..efd6edcd70661be14267598f6f40c39188cdedb0 100644 (file)
@@ -325,6 +325,7 @@ static int stm32_rng_init(struct hwrng *rng)
                                                        (!(reg & RNG_CR_CONDRST)),
                                                        10, 50000);
                if (err) {
+                       clk_disable_unprepare(priv->clk);
                        dev_err((struct device *)priv->rng.priv,
                                "%s: timeout %x!\n", __func__, reg);
                        return -EINVAL;