Commit 612b1dfe authored by Nishanth Menon's avatar Nishanth Menon Committed by Herbert Xu
Browse files

hwrng: ks-sa - fix division by zero in ks_sa_rng_init



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: 6d01d851 ("hwrng: ks-sa - Add minimum sleep time before ready-polling")
Signed-off-by: default avatarNishanth Menon <nm@ti.com>

 drivers/char/hw_random/ks-sa-rng.c | 7 +++++++
 1 file changed, 7 insertions(+)
Reviewed-by: default avatarAlexander Sverdlin <alexander.sverdlin@gmail.com>

Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 5851afff
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -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) {