linux/drivers/crypto
Pascal van Leeuwen 098e51e517 crypto: inside-secure - Fix Unable to fit even 1 command desc error w/ EIP97
Due to the additions of support for modes like AES-CCM and AES-GCM, which
require large command tokens, the size of the descriptor has grown such that
it now does not fit into the descriptor cache of a standard EIP97 anymore.
This means that the driver no longer works on the Marvell Armada 3700LP chip
(as used on e.g. Espressobin) that it has always supported.
Additionally, performance on EIP197's like Marvell A8K may also degrade
due to being able to fit less descriptors in the on-chip cache.
Putting these tokens into the descriptor was really a hack and not how the
design was supposed to be used - resource allocation did not account for it.

So what this patch does, is move the command token out of the descriptor.
To avoid having to allocate buffers on the fly for these command tokens,
they are stuffed in a "shadow ring", which is a circular buffer of fixed
size blocks that runs in lock-step with the descriptor ring. i.e. there is
one token block per descriptor. The descriptor ring itself is then pre-
populated with the pointers to these token blocks so these do not need to
be filled in when building the descriptors later.

Signed-off-by: Pascal van Leeuwen <pvanleeuwen@rambus.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2019-12-20 14:58:33 +08:00
..
allwinner crypto: sun4i-ss - add the A33 variant of SS 2019-12-11 16:36:05 +08:00
amcc crypto: crypto4xx - fix double-free in crypto4xx_destroy_sdr 2019-11-08 23:15:52 +08:00
amlogic crypto: amlogic - enable working on big endian kernel 2019-11-22 18:48:39 +08:00
axis crypto: artpec6 - use devm_platform_ioremap_resource() to simplify code 2019-08-09 15:11:58 +10:00
bcm crypto: bcm-spu - switch to skcipher API 2019-11-17 09:02:46 +08:00
caam crypto: caam/qi2 - remove double buffering for ahash 2019-12-20 14:58:33 +08:00
cavium crypto: cavium/cpt - switch to skcipher API 2019-11-17 09:02:47 +08:00
ccp crypto: ccp - provide in-kernel API to submit TEE commands 2019-12-20 14:58:32 +08:00
ccree crypto: ccree - fix backlog memory leak 2019-12-11 16:36:55 +08:00
chelsio crypto: Kconfig - Fix indentation 2019-12-11 16:36:05 +08:00
hisilicon crypto: hisilicon - still no need to check return value of debugfs_create functions 2019-12-20 14:58:33 +08:00
inside-secure crypto: inside-secure - Fix Unable to fit even 1 command desc error w/ EIP97 2019-12-20 14:58:33 +08:00
marvell crypto: marvell/cesa - rename blkcipher to skcipher 2019-11-17 09:02:49 +08:00
mediatek crypto: mediatek - switch to skcipher API 2019-11-17 09:02:47 +08:00
nx crypto: nx - remove stale comment referring to the blkcipher walk API 2019-11-17 09:02:49 +08:00
qat compat_ioctl: remove most of fs/compat_ioctl.c 2019-12-01 13:46:15 -08:00
qce crypto: qce/dma - Use dma_request_chan() directly for channel request 2019-11-22 18:48:35 +08:00
rockchip crypto: rockchip - switch to skcipher API 2019-11-17 09:02:48 +08:00
stm32 crypto: Kconfig - Fix indentation 2019-12-11 16:36:05 +08:00
ux500 crypto: Kconfig - Fix indentation 2019-12-11 16:36:05 +08:00
virtio crypto: virtio - switch to skcipher API 2019-11-17 09:02:45 +08:00
vmx crypto: vmx - Avoid weird build failures 2019-11-22 18:48:39 +08: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,sha,tdes} - Group common alg type init in dedicated methods 2019-12-11 16:46:23 +08:00
atmel-authenc.h crypto: atmel - Fix authenc support when it is set to m 2019-11-08 23:00:45 +08:00
atmel-ecc.c crypto: atmel-ecc - factor out code that can be shared 2019-05-30 15:35:45 +08:00
atmel-i2c.c crypto: atmel - Fix -Wunused-const-variable warning 2019-08-30 18:05:31 +10:00
atmel-i2c.h crypto: atmel - Fix -Wunused-const-variable warning 2019-08-30 18:05:31 +10:00
atmel-sha204a.c crypto: atmel-sha204a - Use device-managed registration API 2019-08-02 14:43:59 +10: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-{aes,sha,tdes} - Group common alg type init in dedicated methods 2019-12-11 16:46:23 +08: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-{aes,sha,tdes} - Group common alg type init in dedicated methods 2019-12-11 16:46:23 +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-aes - convert to skcipher API and make thread-safe 2019-10-23 19:46:56 +11: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: hifn - switch to skcipher API 2019-11-17 09:02:47 +08:00
img-hash.c crypto: img-hash - use devm_platform_ioremap_resource() to simplify code 2019-08-09 15:11:59 +10:00
ixp4xx_crypto.c crypto: ixp4xx - switch to skcipher API 2019-11-17 09:02:47 +08:00
Kconfig crypto: Kconfig - Fix indentation 2019-12-11 16:36:05 +08:00
Makefile crypto: sun4i-ss - Move to Allwinner directory 2019-11-01 13:38:31 +08:00
mxs-dcp.c crypto: mxs - switch to skcipher API 2019-11-17 09:02:47 +08: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 Merge git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 2019-11-25 19:49:58 -08: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-gcm - convert to use crypto engine 2019-12-11 16:37:00 +08:00
omap-aes.c crypto: omap-aes-gcm - convert to use crypto engine 2019-12-11 16:37:00 +08:00
omap-aes.h crypto: omap-aes-gcm - convert to use crypto engine 2019-12-11 16:37:00 +08:00
omap-crypto.c crypto: omap-crypto - copy the temporary data to output buffer properly 2019-12-11 16:37:00 +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 - handle NULL cipher request 2019-12-11 16:37:00 +08:00
omap-sham.c crypto: omap-sham - fix unaligned sg list handling 2019-12-11 16:37:00 +08:00
padlock-aes.c crypto: padlock-aes - convert to skcipher API 2019-10-23 19:46:58 +11:00
padlock-sha.c crypto: padlock-sha - Use init_tfm/exit_tfm interface 2019-12-11 16:48:39 +08:00
picoxcell_crypto_regs.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
picoxcell_crypto.c crypto: picoxcell - adjust the position of tasklet_init and fix missed tasklet_kill 2019-12-20 14:58:33 +08:00
qcom-rng.c crypto: qcom-rng - use devm_platform_ioremap_resource() to simplify code 2019-08-09 15:12:03 +10:00
s5p-sss.c crypto: s5p - switch to skcipher API 2019-11-17 09:02:46 +08:00
sahara.c crypto: sahara - switch to skcipher API 2019-11-17 09:02:48 +08:00
talitos.c crypto: talitos - switch to skcipher API 2019-11-17 09:02:49 +08:00
talitos.h crypto: talitos - drop icv_ool 2019-07-03 22:13:11 +08:00