ping ... On 2026/1/13 上午11:05, Bibo Mao wrote:
There is problem when multiple processes add encrypt/decrypt requests with virtio crypto device and spinlock is missing with command response handling. Also there is duplicated virtqueue_kick() without lock hold.Here these two issues are fixed, also there is code cleanup, such as use logical numa id rather than physical package id when checking matched virtio device with current CPU. --- v4 ... v5: 1. Only add bugfix patches and remove code cleanup patches. v3 ... v4: 1. Remove patch 10 which adds ECB AES algo, since application and qemu backend emulation is not ready for ECB AES algo. 2. Add Cc stable tag with patch 2 which removes duplicated virtqueue_kick() without lock hold. v2 ... v3: 1. Remove NULL checking with req_data where kfree() is called, since NULL pointer is workable with kfree() API. 2. In patch 7 and patch 8, req_data and IV buffer which are preallocated are sensitive data, memzero_explicit() is used even on error path handling. 3. Remove duplicated virtqueue_kick() in new patch 2, since it is already called in previous __virtio_crypto_skcipher_do_req(). v1 ... v2: 1. Add Fixes tag with patch 1. 2. Add new patch 2 - patch 9 to add ecb aes algo support. --- Bibo Mao (3): crypto: virtio: Add spinlock protection with virtqueue notification crypto: virtio: Remove duplicated virtqueue_kick in virtio_crypto_skcipher_crypt_req crypto: virtio: Replace package id with numa node id drivers/crypto/virtio/virtio_crypto_common.h | 2 +- drivers/crypto/virtio/virtio_crypto_core.c | 5 +++++ drivers/crypto/virtio/virtio_crypto_skcipher_algs.c | 2 -- 3 files changed, 6 insertions(+), 3 deletions(-) base-commit: 9c7ef209cd0f7c1a92ed61eed3e835d6e4abc66c
