mirror_ubuntu-kernels/drivers/crypto/ccp
Rijo Thomas 00aa6e65aa crypto: ccp - fix command queuing to TEE ring buffer
Multiple threads or clients can submit a command to the TEE ring
buffer. This patch helps to synchronize command submission to the
ring.

One thread shall write a command to a TEE ring buffer entry only if:

 - Trusted OS has notified that the TEE command for the given entry
   has been processed and driver has copied the TEE response into
   client buffer.

 - The command entry is empty and can be written into.

After a command has been written to the TEE ring buffer, the global
wptr (mutex protected) shall be incremented for use by next client.

If PSP became unresponsive while processing TEE request from a
client, then further command submission to queue will be disabled.

Fixes: 33960acccf (crypto: ccp - add TEE support for Raven Ridge)
Reviewed-by: Devaraj Rangasamy <Devaraj.Rangasamy@amd.com>
Signed-off-by: Rijo Thomas <Rijo-john.Thomas@amd.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
2021-03-26 20:02:34 +11:00
..
ccp-crypto-aes-cmac.c crypto: drivers - set the flag CRYPTO_ALG_ALLOCATES_MEMORY 2020-07-16 21:49:10 +10:00
ccp-crypto-aes-galois.c crypto: drivers - set the flag CRYPTO_ALG_ALLOCATES_MEMORY 2020-07-16 21:49:10 +10:00
ccp-crypto-aes-xts.c crypto: drivers - set the flag CRYPTO_ALG_ALLOCATES_MEMORY 2020-07-16 21:49:10 +10:00
ccp-crypto-aes.c crypto: drivers - set the flag CRYPTO_ALG_ALLOCATES_MEMORY 2020-07-16 21:49:10 +10:00
ccp-crypto-des3.c crypto: drivers - set the flag CRYPTO_ALG_ALLOCATES_MEMORY 2020-07-16 21:49:10 +10:00
ccp-crypto-main.c crypto: ccp - switch from ablkcipher to skcipher 2019-11-17 09:02:45 +08:00
ccp-crypto-rsa.c mm, treewide: rename kzfree() to kfree_sensitive() 2020-08-07 11:33:22 -07:00
ccp-crypto-sha.c crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
ccp-crypto.h crypto: sha - split sha.h into sha1.h and sha2.h 2020-11-20 14:45:33 +11:00
ccp-debugfs.c crypto: ccp - Switch to SPDX license identifiers 2019-07-03 22:13:12 +08:00
ccp-dev-v3.c crypto: ccp - set max RSA modulus size for v3 platform devices as well 2019-12-11 16:36:55 +08:00
ccp-dev-v5.c crypto: ccp - Fix sparse warnings 2020-07-09 18:25:22 +10:00
ccp-dev.c crypto: ccp - use generic power management 2020-07-31 18:25:26 +10:00
ccp-dev.h crypto: ccp - Fix sparse warnings 2020-07-09 18:25:22 +10:00
ccp-dmaengine.c crypto: ccp - fix uninitialized list head 2019-10-26 02:10:00 +11:00
ccp-ops.c crypto: ccp - fix error handling 2020-10-02 18:02:10 +10:00
Kconfig crypto: ccp -- don't "select" CONFIG_DMADEVICES 2020-04-16 16:49:22 +10:00
Makefile crypto: ccp - add TEE support for Raven Ridge 2019-12-20 14:58:32 +08:00
psp-dev.c crypto: ccp - Cleanup sp_dev_master in psp_dev_destroy() 2020-03-12 23:00:12 +11:00
psp-dev.h crypto: ccp - add TEE support for Raven Ridge 2019-12-20 14:58:32 +08:00
sev-dev.c crypto: ccp - Don't initialize SEV support without the SEV feature 2021-03-13 00:04:02 +11:00
sev-dev.h crypto: ccp - move SEV vdata to a dedicated data structure 2019-12-20 14:58:32 +08:00
sp-dev.c crypto: ccp - use generic power management 2020-07-31 18:25:26 +10:00
sp-dev.h crypto: ccp - use generic power management 2020-07-31 18:25:26 +10:00
sp-pci.c crypto: ccp - use generic power management 2020-07-31 18:25:26 +10:00
sp-platform.c crypto: ccp - use generic power management 2020-07-31 18:25:26 +10:00
tee-dev.c crypto: ccp - fix command queuing to TEE ring buffer 2021-03-26 20:02:34 +11:00
tee-dev.h crypto: ccp - fix command queuing to TEE ring buffer 2021-03-26 20:02:34 +11:00