Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ac8ad307 authored by Fabio Estevam's avatar Fabio Estevam Committed by Herbert Xu
Browse files

crypto: caam - Fix error handling in caam_rng_init()



In the error paths we should free the resources that were
previously acquired, so fix it accordingly.

Signed-off-by: default avatarFabio Estevam <fabio.estevam@freescale.com>
Reviewed-by: default avatarHoria Geant? <horia.geanta@freescale.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 8669f34e
Loading
Loading
Loading
Loading
+11 −3
Original line number Diff line number Diff line
@@ -352,14 +352,22 @@ static int __init caam_rng_init(void)
		return PTR_ERR(dev);
	}
	rng_ctx = kmalloc(sizeof(struct caam_rng_ctx), GFP_DMA);
	if (!rng_ctx)
		return -ENOMEM;
	if (!rng_ctx) {
		err = -ENOMEM;
		goto free_caam_alloc;
	}
	err = caam_init_rng(rng_ctx, dev);
	if (err)
		return err;
		goto free_rng_ctx;

	dev_info(dev, "registering rng-caam\n");
	return hwrng_register(&caam_rng);

free_rng_ctx:
	kfree(rng_ctx);
free_caam_alloc:
	caam_jr_free(dev);
	return err;
}

module_init(caam_rng_init);