linux/drivers/crypto/caam
Alex Porosanu 21cc91554c crypto: caam - fix AEAD givenc descriptors
commit d128af1787 upstream.

The AEAD givenc descriptor relies on moving the IV through the
output FIFO and then back to the CTX2 for authentication. The
SEQ FIFO STORE could be scheduled before the data can be
read from OFIFO, especially since the SEQ FIFO LOAD needs
to wait for the SEQ FIFO LOAD SKIP to finish first. The
SKIP takes more time when the input is SG than when it's
a contiguous buffer. If the SEQ FIFO LOAD is not scheduled
before the STORE, the DECO will hang waiting for data
to be available in the OFIFO so it can be transferred to C2.
In order to overcome this, first force transfer of IV to C2
by starting the "cryptlen" transfer first and then starting to
store data from OFIFO to the output buffer.

Fixes: 1acebad3d8 ("crypto: caam - faster aead implementation")
Signed-off-by: Alex Porosanu <alexandru.porosanu@nxp.com>
Signed-off-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2017-01-06 10:40:13 +01:00
..
caamalg.c crypto: caam - fix AEAD givenc descriptors 2017-01-06 10:40:13 +01:00
caamhash.c crypto: caam - Move common error handling code in two functions 2016-09-22 18:27:46 +08:00
caampkc.c crypto: caam - add support for RSA algorithm 2016-07-05 23:05:24 +08:00
caampkc.h crypto: caam - add support for RSA algorithm 2016-07-05 23:05:24 +08:00
caamrng.c crypto: caam - Use the preferred style for memory allocations 2015-08-24 22:07:42 +08:00
compat.h crypto: caam - add support for RSA algorithm 2016-07-05 23:05:24 +08:00
ctrl.c crypto: caam - fix pointer size for AArch64 boot loader, AArch32 kernel 2016-12-07 19:55:17 +08:00
ctrl.h crypto: caam - fix ERA retrieval function 2014-02-09 09:59:27 +08:00
desc.h crypto: caam - treat SGT address pointer as u64 2016-10-02 22:33:45 +08:00
desc_constr.h crypto: caam - fix rfc3686(ctr(aes)) IV load 2016-09-07 21:08:28 +08:00
error.c crypto: caam - don't emit ICV check failures to dmesg 2015-01-26 11:34:23 +11:00
error.h crypto: caam - Contain caam_jr_strstatus() ugliness 2014-05-08 21:58:06 +08:00
intern.h crypto: caam - get rid of tasklet 2016-08-09 18:47:28 +08:00
jr.c crypto: caam - Unmap region obtained by of_iomap 2016-10-02 22:33:43 +08:00
jr.h crypto: caam - Add API's to allocate/free Job Rings 2013-10-30 12:02:57 +08:00
Kconfig crypto: caam - add support for RSA algorithm 2016-07-05 23:05:24 +08:00
key_gen.c crypto: caam - fix missing dma unmap on error path 2014-11-06 23:10:20 +08:00
key_gen.h crypto: caam - change key gen functions to return signed int 2013-04-25 21:01:43 +08:00
Makefile crypto: caam - add support for RSA algorithm 2016-07-05 23:05:24 +08:00
pdb.h crypto: caam - add support for RSA algorithm 2016-07-05 23:05:24 +08:00
pkc_desc.c crypto: caam - add support for RSA algorithm 2016-07-05 23:05:24 +08:00
regs.h crypto: caam - treat SGT address pointer as u64 2016-10-02 22:33:45 +08:00
sg_sw_sec4.h crypto: caam - treat SGT address pointer as u64 2016-10-02 22:33:45 +08:00