On Wed, Feb 12, 2020 at 07:55:15PM +0200, Iuliana Prodan wrote: > Integrate crypto_engine framework into CAAM, to make use of > the engine queue. > Added support for SKCIPHER, HASH, RSA and AEAD algorithms. > This is intended to be used for CAAM backlogging support. > The requests, with backlog flag (e.g. from dm-crypt) will be > listed into crypto-engine queue and processed by CAAM when free. > > While here, I've also made some refactorization. > Patches #1 - #4 include some refactorizations on caamalg, caamhash > and caampkc. > Patch #5 changes the return code of caam_jr_enqueue function > to -EINPROGRESS, in case of success, -ENOSPC in case the CAAM is > busy, -EIO if it cannot map the caller's descriptor. > Patches #6 - #9 integrate crypto_engine into CAAM, for > SKCIPHER/AEAD/RSA/HASH algorithms. > > --- > Changes since V5: > - remove unnecessary initializations; > - add local variable for share descriptor offset for skcipher and hash; > - handle error case for ahash_update_first and ahash_update_no_ctx. > > Changes since V4: > - reorganize {skcipher,aead,rsa}_edesc struct for a proper > cacheline sharing. > > Changes since V3: > - update return on ahash_enqueue_req function from patch #9. > > Changes since V2: > - remove patch ("crypto: caam - refactor caam_jr_enqueue"), > that added some structures not needed anymore; > - use _done_ callback function directly for skcipher and aead; > - handle resource leak in case of transfer request to crypto-engine; > - update commit messages. > > Changes since V1: > - remove helper function - akcipher_request_cast; > - remove any references to crypto_async_request, > use specific request type; > - remove bypass crypto-engine queue, in case is empty; > - update some commit messages; > - remove unrelated changes, like whitespaces; > - squash some changes from patch #9 to patch #6; > - added Reviewed-by. > > Iuliana Prodan (9): > crypto: caam - refactor skcipher/aead/gcm/chachapoly {en,de}crypt > functions > crypto: caam - refactor ahash_done callbacks > crypto: caam - refactor ahash_edesc_alloc > crypto: caam - refactor RSA private key _done callbacks > crypto: caam - change return code in caam_jr_enqueue function > crypto: caam - support crypto_engine framework for SKCIPHER algorithms > crypto: caam - add crypto_engine support for AEAD algorithms > crypto: caam - add crypto_engine support for RSA algorithms > crypto: caam - add crypto_engine support for HASH algorithms > > drivers/crypto/caam/Kconfig | 1 + > drivers/crypto/caam/caamalg.c | 413 ++++++++++++++++++----------------------- > drivers/crypto/caam/caamhash.c | 338 +++++++++++++++++---------------- > drivers/crypto/caam/caampkc.c | 185 +++++++++++------- > drivers/crypto/caam/caampkc.h | 10 + > drivers/crypto/caam/caamrng.c | 4 +- > drivers/crypto/caam/intern.h | 2 + > drivers/crypto/caam/jr.c | 36 +++- > drivers/crypto/caam/key_gen.c | 2 +- > 9 files changed, 512 insertions(+), 479 deletions(-) All applied. Thanks. -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt