linux-stable/crypto
Iuliana Prodan d1c72f6e4c crypto: engine - do not requeue in case of fatal error
Now, in crypto-engine, if hardware queue is full (-ENOSPC),
requeue request regardless of MAY_BACKLOG flag.
If hardware throws any other error code (like -EIO, -EINVAL,
-ENOMEM, etc.) only MAY_BACKLOG requests are enqueued back into
crypto-engine's queue, since the others can be dropped.
The latter case can be fatal error, so those cannot be recovered from.
For example, in CAAM driver, -EIO is returned in case the job descriptor
is broken, so there is no possibility to fix the job descriptor.
Therefore, these errors might be fatal error, so we shouldn’t
requeue the request. This will just be pass back and forth between
crypto-engine and hardware.

Fixes: 6a89f492f8 ("crypto: engine - support for parallel requests based on retry mechanism")
Signed-off-by: Iuliana Prodan <iuliana.prodan@nxp.com>
Reported-by: Horia Geantă <horia.geanta@nxp.com>
Reviewed-by: Horia Geantă <horia.geanta@nxp.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2020-05-28 17:27:52 +10:00
..
asymmetric_keys KEYS: asymmetric: return ENOMEM if akcipher_request_alloc() fails 2019-12-12 23:45:16 +02:00
async_tx
842.c
acompress.c crypto: algapi - make unregistration functions return void 2019-12-20 14:58:35 +08:00
adiantum.c Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-01-28 15:38:56 -08:00
aead.c crypto: algapi - enforce that all instances have a ->free() method 2020-01-09 11:30:58 +08:00
aegis.h
aegis128-core.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
aegis128-neon-inner.c crypto: aegis128 - duplicate init() and final() hooks in SIMD code 2019-10-26 02:06:05 +11:00
aegis128-neon.c crypto: aegis128 - duplicate init() and final() hooks in SIMD code 2019-10-26 02:06:05 +11:00
aes_generic.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
aes_ti.c
af_alg.c crypto: af_alg - bool type cosmetics 2020-03-30 11:50:50 +11:00
ahash.c crypto: algapi - enforce that all instances have a ->free() method 2020-01-09 11:30:58 +08:00
akcipher.c crypto: algapi - enforce that all instances have a ->free() method 2020-01-09 11:30:58 +08:00
algapi.c crypto: algapi - create function to add request in front of queue 2020-05-08 15:30:40 +10:00
algboss.c crypto: algapi - remove crypto_template::{alloc,free}() 2020-01-09 11:30:58 +08:00
algif_aead.c
algif_hash.c crypto: af_alg - bool type cosmetics 2020-03-30 11:50:50 +11:00
algif_rng.c crypto: algif_rng - remove redundant assignment to variable err 2020-04-24 17:42:16 +10:00
algif_skcipher.c
ansi_cprng.c
anubis.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
api.c crypto: api - Fix use-after-free and race in crypto_spawn_alg 2020-04-16 16:49:22 +10:00
arc4.c
authenc.c crypto: authenc - use crypto_grab_ahash() and simplify error paths 2020-01-09 11:30:55 +08:00
authencesn.c crypto: authencesn - fix weird comma-terminated line 2020-03-06 12:28:22 +11:00
blake2b_generic.c crypto: blake2b - Fix clang optimization for ARMv7-M 2020-05-15 16:15:00 +10:00
blake2s_generic.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
blowfish_common.c
blowfish_generic.c
camellia_generic.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
cast5_generic.c
cast6_generic.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
cast_common.c
cbc.c crypto: skcipher - Add skcipher_ialg_simple helper 2019-12-27 18:18:04 +08:00
ccm.c crypto: ccm - simplify error handling in crypto_rfc4309_create() 2020-03-06 12:28:22 +11:00
cfb.c crypto: skcipher - Add skcipher_ialg_simple helper 2019-12-27 18:18:04 +08:00
chacha20poly1305.c crypto: chacha20poly1305 - use crypto_grab_ahash() and simplify error paths 2020-01-09 11:30:56 +08:00
chacha_generic.c crypto: chacha_generic - remove unnecessary setkey() functions 2019-11-22 18:48:39 +08:00
cipher.c crypto: remove propagation of CRYPTO_TFM_RES_* flags 2020-01-09 11:30:53 +08:00
cmac.c crypto: shash - convert shash_free_instance() to new style 2020-01-09 11:30:57 +08:00
compress.c crypto: compress - remove crt_u.compress (struct compress_tfm) 2019-12-11 16:37:01 +08:00
crc32_generic.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
crc32c_generic.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
crct10dif_common.c
crct10dif_generic.c
cryptd.c crypto: cryptd - simplify error handling in cryptd_create_*() 2020-03-06 12:28:22 +11:00
crypto_engine.c crypto: engine - do not requeue in case of fatal error 2020-05-28 17:27:52 +10:00
crypto_null.c
crypto_user_base.c crypto: algapi - make unregistration functions return void 2019-12-20 14:58:35 +08:00
crypto_user_stat.c crypto: skcipher - remove the "blkcipher" algorithm type 2019-11-01 13:38:32 +08:00
ctr.c crypto: ctr - simplify error handling in crypto_rfc3686_create() 2020-03-06 12:28:22 +11:00
cts.c crypto: cts - simplify error handling in crypto_cts_create() 2020-03-06 12:28:23 +11:00
curve25519-generic.c crypto: curve25519 - implement generic KPP driver 2019-11-17 09:02:43 +08:00
deflate.c
des_generic.c crypto: remove CRYPTO_TFM_RES_WEAK_KEY 2020-01-09 11:30:53 +08:00
dh.c
dh_helper.c
drbg.c crypto: drbg - fix error return code in drbg_alloc_state() 2020-05-08 15:30:41 +10:00
ecb.c crypto: skcipher - Add skcipher_ialg_simple helper 2019-12-27 18:18:04 +08:00
ecc.c int128: move __uint128_t compiler test to Kconfig 2019-11-17 09:02:42 +08:00
ecc.h
ecc_curve_defs.h
ecdh.c
ecdh_helper.c
echainiv.c crypto: geniv - convert to new way of freeing instances 2020-01-09 11:30:57 +08:00
ecrdsa.c
ecrdsa_defs.h
ecrdsa_params.asn1
ecrdsa_pub_key.asn1
essiv.c crypto: essiv - use crypto_shash_tfm_digest() 2020-05-08 15:32:13 +10:00
fcrypt.c
fips.c
gcm.c crypto: gcm - simplify error handling in crypto_rfc4543_create() 2020-03-06 12:28:23 +11:00
geniv.c crypto: geniv - simply error handling in aead_geniv_alloc() 2020-03-06 12:28:23 +11:00
gf128mul.c
ghash-generic.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
hash_info.c crypto: rename sm3-256 to sm3 in hash_algo_name 2020-02-18 07:35:49 -05:00
hmac.c crypto: shash - convert shash_free_instance() to new style 2020-01-09 11:30:57 +08:00
internal.h crypto: api - Fix use-after-free and race in crypto_spawn_alg 2020-04-16 16:49:22 +10:00
jitterentropy-kcapi.c crypto: jitter - SP800-90B compliance 2020-04-24 17:42:17 +10:00
jitterentropy.c crypto: jitter - SP800-90B compliance 2020-04-24 17:42:17 +10:00
jitterentropy.h crypto: jitter - add header to fix buildwarnings 2019-10-18 18:49:40 +11:00
Kconfig crypto: drbg - should select CTR 2020-04-30 15:19:34 +10:00
keywrap.c crypto: skcipher - Add skcipher_ialg_simple helper 2019-12-27 18:18:04 +08:00
khazad.c
kpp.c
lrw.c crypto - Avoid free() namespace collision 2020-05-08 15:30:41 +10:00
lz4.c
lz4hc.c
lzo-rle.c
lzo.c
Makefile crypto: ablkcipher - remove deprecated and unused ablkcipher support 2019-11-17 09:02:49 +08:00
md4.c
md5.c crypto: md5 - remove unused macros 2020-02-28 08:43:21 +08:00
memneq.c
michael_mic.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
nhpoly1305.c crypto: poly1305 - add new 32 and 64-bit generic versions 2020-01-16 15:18:12 +08:00
ofb.c crypto: skcipher - Add skcipher_ialg_simple helper 2019-12-27 18:18:04 +08:00
pcbc.c crypto: skcipher - Add skcipher_ialg_simple helper 2019-12-27 18:18:04 +08:00
pcrypt.c crypto: pcrypt - simplify error handling in pcrypt_create_aead() 2020-03-06 12:28:24 +11:00
poly1305_generic.c crypto: poly1305 - add new 32 and 64-bit generic versions 2020-01-16 15:18:12 +08:00
proc.c crypto: proc - simplify the c_show function 2020-02-13 17:05:26 +08:00
ripemd.h
rmd128.c
rmd160.c
rmd256.c
rmd320.c
rng.c crypto: rng - Fix a refcounting bug in crypto_rng_reset() 2020-02-13 16:58:09 +08:00
rsa-pkcs1pad.c crypto: rsa-pkcs1pad - simplify error handling in pkcs1pad_create() 2020-03-06 12:28:24 +11:00
rsa.c
rsa_helper.c
rsaprivkey.asn1
rsapubkey.asn1
salsa20_generic.c
scatterwalk.c
scompress.c crypto: algapi - make unregistration functions return void 2019-12-20 14:58:35 +08:00
seed.c
seqiv.c crypto: geniv - convert to new way of freeing instances 2020-01-09 11:30:57 +08:00
serpent_generic.c crypto: x86 - Regularize glue function prototypes 2019-12-11 16:36:54 +08:00
sha1_generic.c crypto: lib/sha1 - fold linux/cryptohash.h into crypto/sha.h 2020-05-08 15:32:17 +10:00
sha3_generic.c
sha256_generic.c crypto: lib/sha256 - return void 2020-05-08 15:32:12 +10:00
sha512_generic.c
shash.c crypto: hash - introduce crypto_shash_tfm_digest() 2020-05-08 15:32:12 +10:00
simd.c crypto: remove propagation of CRYPTO_TFM_RES_* flags 2020-01-09 11:30:53 +08:00
skcipher.c crypto: algapi - enforce that all instances have a ->free() method 2020-01-09 11:30:58 +08:00
sm3_generic.c
sm4_generic.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
streebog_generic.c
tcrypt.c crypto: tcrypt - fix printed skcipher [a]sync mode 2020-02-13 17:05:26 +08:00
tcrypt.h
tea.c
testmgr.c Merge branch 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2020-04-01 14:47:40 -07:00
testmgr.h crypto: testmgr - generate inauthentic AEAD test vectors 2019-12-11 16:37:01 +08:00
tgr192.c crypto: tgr192 - remove unneeded semicolon 2019-11-15 13:44:17 +08:00
twofish_common.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
twofish_generic.c
vmac.c crypto: shash - convert shash_free_instance() to new style 2020-01-09 11:30:57 +08:00
wp512.c
xcbc.c crypto: shash - convert shash_free_instance() to new style 2020-01-09 11:30:57 +08:00
xor.c
xts.c crypto - Avoid free() namespace collision 2020-05-08 15:30:41 +10:00
xxhash_generic.c crypto: remove CRYPTO_TFM_RES_BAD_KEY_LEN 2020-01-09 11:30:53 +08:00
zstd.c