crypto: caam - save caam memory to support crypto engine retry mechanism.
authorGaurav Jain <gaurav.jain@nxp.com>
Mon, 22 Nov 2021 11:32:34 +0000 (17:02 +0530)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 3 Dec 2021 04:56:17 +0000 (15:56 +1100)
commit087e1d715bccf25dc0e83294576e416b0386ba20
tree7d5355ef1eb6651db2b7406712109b882bcfb9ab
parent330507fbc9d8c3bc4525ea2ae9c3774738bc0c80
crypto: caam - save caam memory to support crypto engine retry mechanism.

When caam queue is full (-ENOSPC), caam frees descriptor memory.
crypto-engine checks if retry support is true and h/w queue
is full(-ENOSPC), then requeue the crypto request.
During processing the requested descriptor again, caam gives below error.
(caam_jr 30902000.jr: 40000006: DECO: desc idx 0: Invalid KEY Command).

This patch adds a check to return when caam input ring is full
and retry support is true. so descriptor memory is not freed
and requeued request can be processed again.

Fixes: 2d653936eb2cf ("crypto: caam - enable crypto-engine retry mechanism")
Signed-off-by: Gaurav Jain <gaurav.jain@nxp.com>
Reviewed-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/caam/caamalg.c
drivers/crypto/caam/caamhash.c
drivers/crypto/caam/caampkc.c