Issue: While servicing interrupt, trying to access variable rng_op_done, which is not yet initalized hence causing kernel to crash while booting. Fix: Moving initialization of rng_op_done before request_irq. Fixes: 1d5449445bd0 (hwrng: mx-rngc - add a driver for Freescale RNGC) Signed-off-by: Kshitiz Varshney <kshitiz.varshney@xxxxxxx> --- drivers/char/hw_random/imx-rngc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/char/hw_random/imx-rngc.c b/drivers/char/hw_random/imx-rngc.c index b05d676ca814..53e571c4f283 100644 --- a/drivers/char/hw_random/imx-rngc.c +++ b/drivers/char/hw_random/imx-rngc.c @@ -270,6 +270,8 @@ static int imx_rngc_probe(struct platform_device *pdev) goto err; } + init_completion(&rngc->rng_op_done); + ret = devm_request_irq(&pdev->dev, irq, imx_rngc_irq, 0, pdev->name, (void *)rngc); if (ret) { @@ -277,7 +279,6 @@ static int imx_rngc_probe(struct platform_device *pdev) goto err; } - init_completion(&rngc->rng_op_done); rngc->rng.name = pdev->name; rngc->rng.init = imx_rngc_init; -- 2.25.1