]> www.infradead.org Git - users/hch/misc.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)
committerHerbert Xu <herbert@gondor.apana.org.au>
Sun, 28 Sep 2025 03:54:48 +0000 (11:54 +0800)
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>
drivers/char/hw_random/ks-sa-rng.c

index d8fd8a3544828aef001a6a72723521c74d9a6cfb..9e408144a10c1eb19c767ac1d1ca0d2838722a46 100644 (file)
@@ -231,6 +231,10 @@ static int ks_sa_rng_probe(struct platform_device *pdev)
        if (IS_ERR(ks_sa_rng->regmap_cfg))
                return dev_err_probe(dev, -EINVAL, "syscon_node_to_regmap failed\n");
 
+       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) {