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
-- 
2.39.3


Reply via email to