linux/drivers/crypto
Herbert Xu be62a70171 crypto: marvell/cesa - Do not chain submitted requests
commit 0413bcf0fc upstream.

This driver tries to chain requests together before submitting them
to hardware in order to reduce completion interrupts.

However, it even extends chains that have already been submitted
to hardware.  This is dangerous because there is no way of knowing
whether the hardware has already read the DMA memory in question
or not.

Fix this by splitting the chain list into two.  One for submitted
requests and one for requests that have not yet been submitted.
Only extend the latter.

Reported-by: Klaus Kudielka <klaus.kudielka@gmail.com>
Fixes: 85030c5168 ("crypto: marvell - Add support for chaining crypto requests in TDMA mode")
Cc: <stable@vger.kernel.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2025-06-27 11:07:25 +01:00
..
allwinner crypto: sun8i-ce - move fallback ahash_request to the end of the struct 2025-06-27 11:07:07 +01:00
amcc crypto: crypto4xx - Call dma_unmap_page when done 2023-03-10 09:33:04 +01:00
amlogic crypto: amlogic - Remove kcalloc without check 2022-12-31 13:32:36 +01:00
aspeed crypto: aspeed - Remove redundant dev_err call 2022-09-30 13:59:13 +08:00
axis crypto: artpec6 - Fix printk warning on size_t/%d 2022-09-24 16:14:43 +08:00
bcm crypto: bcm - add error check in the ahash_hmac_init function 2024-12-14 19:53:18 +01:00
caam crypto: caam/qi - Fix drv_ctx refcount bug 2025-04-25 10:43:53 +02:00
cavium crypto: cavium - Fix an error handling path in cpt_ucode_load_fw() 2024-12-14 19:53:18 +01:00
ccp crypto: ccp - Fix check for the primary ASP device 2025-04-25 10:43:44 +02:00
ccree crypto: ccree - Make cc_debugfs_global_fini() available for module init function 2022-12-31 13:32:33 +01:00
chelsio treewide: Replace open-coded flex arrays in unions 2021-10-18 12:28:53 -07:00
gemini Revert "crypto: gemini - Fix error check for dma_map_sg" 2022-09-02 18:15:53 +08:00
hisilicon crypto: hisilicon/sec2 - fix for aead auth key length 2025-04-10 14:33:35 +02:00
inside-secure crypto: inside-secure - Fix the return value of safexcel_xcbcmac_cra_init() 2024-12-14 19:53:17 +01:00
keembay crypto: keembay-ocs - Drop obsolete dependency on COMPILE_TEST 2022-08-19 18:39:36 +08:00
marvell crypto: marvell/cesa - Do not chain submitted requests 2025-06-27 11:07:25 +01:00
nx crypto: nx - Fix uninitialised hv_nxc on error 2025-04-10 14:33:35 +02:00
qat crypto: qat - remove faulty arbiter config reset 2024-12-14 19:53:17 +01:00
qce crypto: qce - unregister previously registered algos in error path 2025-02-21 13:49:49 +01:00
rockchip crypto: rockchip - rework by using crypto_engine 2022-12-31 13:32:31 +01:00
stm32 crypto: stm32/crc32 - fix parsing list of devices 2024-02-05 20:12:48 +00:00
ux500 crypto: ux500/hash - drop unexpected word "the" 2022-06-30 15:56:57 +08:00
virtio crypto: virtio/akcipher - Fix stack overflow on memcpy 2024-03-01 13:26:32 +01:00
vmx powerpc/64: Add big-endian ELFv2 flavour to crypto VMX asm generation 2024-10-22 15:56:51 +02:00
xilinx crypto: xilinx - call finalize with bh disabled 2024-03-26 18:20:47 -04:00
atmel-aes-regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atmel-aes.c crypto: atmel-aes - Drop if with an always false condition 2022-07-15 16:43:20 +08:00
atmel-authenc.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
atmel-ecc.c i2c: Make remove callback return void 2022-08-16 12:46:26 +02:00
atmel-i2c.c crypto: atmel - Avoid flush_scheduled_work() usage 2022-05-06 18:16:55 +08:00
atmel-i2c.h crypto: atmel - Avoid flush_scheduled_work() usage 2022-05-06 18:16:55 +08:00
atmel-sha-regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atmel-sha.c crypto: atmel-sha - initialize sha_dd while declaring 2022-07-15 16:43:22 +08:00
atmel-sha204a.c crypto: atmel-sha204a - Set hwrng quality to lowest possible 2025-05-02 07:47:08 +02:00
atmel-tdes-regs.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
atmel-tdes.c crypto: atmel-tdes - initialize tdes_dd while declaring 2022-07-15 16:43:22 +08:00
exynos-rng.c crypto: exynos - use devm_platform_ioremap_resource() to simplify code 2019-08-09 15:11:59 +10:00
geode-aes.c crypto: geode - use DEFINE_SPINLOCK() for spinlock 2021-04-16 21:16:31 +10:00
geode-aes.h crypto: geode-aes - convert to skcipher API and make thread-safe 2019-10-23 19:46:56 +11:00
hifn_795x.c crypto: drivers - use semicolons rather than commas to separate statements 2020-10-02 18:02:15 +10:00
img-hash.c crypto: img-hash - Fix variable dereferenced before check 'hdev->req' 2022-12-31 13:32:37 +01:00
ixp4xx_crypto.c crypto: ixp4xx - fix OF node reference leaks in init_ixp_crypto() 2025-02-21 13:49:08 +01:00
Kconfig crypto: sa2ul - Select CRYPTO_DES 2023-05-11 23:03:20 +09:00
Makefile crypto: aspeed - Add HACE hash driver 2022-08-26 18:50:37 +08:00
mxs-dcp.c crypto: mxs-dcp - Fix scatterlist processing 2022-01-31 11:21:46 +11:00
n2_asm.S License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
n2_core.c crypto: n2 - add missing hash statesize 2023-01-07 11:11:54 +01:00
n2_core.h License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
omap-aes-gcm.c crypto: omap-aes - avoid spamming console with self tests 2020-06-04 22:03:39 +10:00
omap-aes.c crypto: omap-aes - Drop if with an always false condition 2022-07-15 16:43:21 +08:00
omap-aes.h crypto: omap-aes - permit asynchronous skcipher as fallback 2020-07-16 21:49:02 +10:00
omap-crypto.c crypto: omap - Avoid redundant copy when using truncated sg list 2021-08-21 15:44:53 +08:00
omap-crypto.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
omap-des.c crypto: omap-des - Drop if with an always false condition 2022-07-15 16:43:21 +08:00
omap-sham.c crypto: omap-sham - Use pm_runtime_resume_and_get() in omap_sham_probe() 2022-12-31 13:32:36 +01:00
padlock-aes.c crypto: algapi - Remove skbuff.h inclusion 2020-08-20 14:04:28 +10:00
padlock-sha.c crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
qcom-rng.c crypto: qcom-rng - Fix qcom_rng_of_match unused warning 2022-08-19 18:39:35 +08:00
s5p-sss.c crypto: s5p-sss - Drop if with an always false condition 2022-07-15 16:43:21 +08:00
sa2ul.c crypto: sa2ul - Return crypto_aead_setkey to transfer the error 2024-01-25 15:27:21 -08:00
sa2ul.h crypto: sa2ul - Check engine status before enabling 2022-07-15 16:43:22 +08:00
sahara.c crypto: sahara - do not resize req->src when doing hash operations 2024-01-25 15:27:23 -08:00
talitos.c crypto: talitos - Uniform coding style with defined variable 2022-05-13 17:24:49 +08:00
talitos.h crypto: talitos - Work around SEC6 ERRATA (AES-CTR mode data size error) 2021-01-29 15:57:58 +11:00