]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
hwrng: ks-sa - fix division by zero in ks_sa_rng_init
authorNishanth Menon <nm@ti.com>
Fri, 19 Sep 2025 13:20:02 +0000 (08:20 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 15 Oct 2025 09:56:38 +0000 (11:56 +0200)
[ Upstream commit 612b1dfeb414dfa780a6316014ceddf9a74ff5c0 ]

Fix division by zero in ks_sa_rng_init caused by missing clock
pointer initialization. The clk_get_rate() call is performed on
an uninitialized clk pointer, resulting in division by zero when
calculating delay values.

Add clock initialization code before using the clock.

Fixes: 6d01d8511dce ("hwrng: ks-sa - Add minimum sleep time before ready-polling")
Signed-off-by: Nishanth Menon <nm@ti.com>
 drivers/char/hw_random/ks-sa-rng.c | 7 +++++++
 1 file changed, 7 insertions(+)
Reviewed-by: Alexander Sverdlin <alexander.sverdlin@gmail.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/char/hw_random/ks-sa-rng.c

index 2f2f21f1b659e0a2749b95f7eb1aab53c63d07dc..d7b42888f25c282c874954d51b983527e54e3afe 100644 (file)
@@ -240,6 +240,10 @@ static int ks_sa_rng_probe(struct platform_device *pdev)
                return -EINVAL;
        }
 
+       ks_sa_rng->clk = devm_clk_get_enabled(dev, NULL);
+       if (IS_ERR(ks_sa_rng->clk))
+               return dev_err_probe(dev, PTR_ERR(ks_sa_rng->clk), "Failed to get clock\n");
+
        pm_runtime_enable(dev);
        ret = pm_runtime_resume_and_get(dev);
        if (ret < 0) {