1
0
Fork 0
alistair23-linux/drivers/crypto/caam
Horia Geantă 225ece3e7d crypto: caam - fix endless loop when DECO acquire fails
In case DECO0 cannot be acquired - i.e. run_descriptor_deco0() fails
with -ENODEV, caam_probe() enters an endless loop:

run_descriptor_deco0
	ret -ENODEV
	-> instantiate_rng
		-ENODEV, overwritten by -EAGAIN
		ret -EAGAIN
		-> caam_probe
			-EAGAIN results in endless loop

It turns out the error path in instantiate_rng() is incorrect,
the checks are done in the wrong order.

Cc: <stable@vger.kernel.org> # 3.13+
Fixes: 1005bccd7a ("crypto: caam - enable instantiation of all RNG4 state handles")
Reported-by: Bryan O'Donoghue <pure.logic@nexus-software.ie>
Suggested-by: Auer Lukas <lukas.auer@aisec.fraunhofer.de>
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2018-02-08 22:38:13 +11:00
..
Kconfig crypto: caam - fix LS1021A support on ARMv7 multiplatform kernel 2017-09-20 17:42:42 +08:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
caamalg.c crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
caamalg_desc.c crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
caamalg_desc.h crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
caamalg_qi.c crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
caamhash.c crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
caampkc.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2017-07-05 15:17:26 +08:00
caampkc.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
caamrng.c crypto: caam - clean-up in caam_init_rng() 2017-07-18 18:16:07 +08:00
compat.h Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2017-11-14 10:52:09 -08:00
ctrl.c crypto: caam - fix endless loop when DECO acquire fails 2018-02-08 22:38:13 +11:00
ctrl.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
desc.h crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
desc_constr.h crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
error.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
error.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
intern.h crypto: caam - save Era in driver's private data 2017-12-28 17:56:47 +11:00
jr.c locking/atomics: COCCINELLE/treewide: Convert trivial ACCESS_ONCE() patterns to READ_ONCE()/WRITE_ONCE() 2017-10-25 11:01:08 +02:00
jr.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
key_gen.c crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
key_gen.h crypto: caam - add Derived Key Protocol (DKP) support 2017-12-28 17:56:48 +11:00
pdb.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
pkc_desc.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qi.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
qi.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
sg_sw_qm.h crypto: caam/qi - add ablkcipher and authenc algorithms 2017-03-24 22:02:59 +08:00
sg_sw_qm2.h crypto: caam/jr - add support for DPAA2 parts 2017-08-03 13:47:13 +08:00
sg_sw_sec4.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00