From 3975ac785ff22dd1e15a29eb28885002a1bd00f2 Mon Sep 17 00:00:00 2001 From: Nitesh Lal Date: Wed, 30 Apr 2014 17:13:40 +0530 Subject: crypto: caam - Fix crash in caampkc module_init Added NULL check for private structure in caampkc module. It is NULL when the caam driver fails to properly initialize (e.g. RNG4 init failed), then the module should gracefully do a failed initialization. Signed-off-by: Nitesh Lal Change-Id: If5b3e6ead28c4f45e51b0b7d887fdc57d8a8d194 Reviewed-on: http://git.am.freescale.net:8181/11714 Tested-by: Review Code-CDREVIEW Reviewed-by: Ruchika Gupta Reviewed-by: Yashpal Dutta Reviewed-by: Jose Rivera diff --git a/drivers/crypto/caam/caampkc.c b/drivers/crypto/caam/caampkc.c index 8023e55..173fc41 100644 --- a/drivers/crypto/caam/caampkc.c +++ b/drivers/crypto/caam/caampkc.c @@ -1420,6 +1420,13 @@ static int __init caam_pkc_init(void) priv = dev_get_drvdata(ctrldev); of_node_put(dev_node); + /* + * If priv is NULL, it's probably because the caam driver wasn't + * properly initialized (e.g. RNG4 init failed). Thus, bail out here. + */ + if (!priv) + return -ENODEV; + INIT_LIST_HEAD(&priv->pkc_list); /* register crypto algorithms the device supports */ -- cgit v0.10.2