aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCatalin Vasile <cata.vasile@nxp.com>2016-05-06 16:18:53 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2016-06-01 12:12:47 -0700
commit9efe50f0d3cfeba6a495bf4015cbfc02a27019fb (patch)
treed7527f40f43e07563eaaff3782fbce1a92a4fa6f
parent50b139ab8606ebe66da507dddbc838baa5cfbf61 (diff)
downloadlinux-yocto-9efe50f0d3cfeba6a495bf4015cbfc02a27019fb.tar.gz
linux-yocto-9efe50f0d3cfeba6a495bf4015cbfc02a27019fb.tar.bz2
linux-yocto-9efe50f0d3cfeba6a495bf4015cbfc02a27019fb.zip
crypto: caam - fix caam_jr_alloc() ret code
commit e930c765ca5c6b039cd22ebfb4504ea7b5dab43d upstream. caam_jr_alloc() used to return NULL if a JR device could not be allocated for a session. In turn, every user of this function used IS_ERR() function to verify if anything went wrong, which does NOT look for NULL values. This made the kernel crash if the sanity check failed, because the driver continued to think it had allocated a valid JR dev instance to the session and at some point it tries to do a caam_jr_free() on a NULL JR dev pointer. This patch is a fix for this issue. Signed-off-by: Catalin Vasile <cata.vasile@nxp.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/crypto/caam/jr.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/crypto/caam/jr.c b/drivers/crypto/caam/jr.c
index b512a4ba7569..33308810d1b5 100644
--- a/drivers/crypto/caam/jr.c
+++ b/drivers/crypto/caam/jr.c
@@ -244,7 +244,7 @@ static void caam_jr_dequeue(unsigned long devarg)
struct device *caam_jr_alloc(void)
{
struct caam_drv_private_jr *jrpriv, *min_jrpriv = NULL;
- struct device *dev = NULL;
+ struct device *dev = ERR_PTR(-ENODEV);
int min_tfm_cnt = INT_MAX;
int tfm_cnt;