diff options
author | Gonglei (Arei) <arei.gonglei@huawei.com> | 2023-11-20 11:49:45 +0000 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2023-12-01 18:03:26 +0800 |
commit | fed93fb62e05c38152b0fc1dc9609639e63eed76 (patch) | |
tree | 7a775f2ffa65789d40000aca074852af93df6266 /drivers/crypto/virtio/virtio_crypto_common.h | |
parent | 8a0d929b53c383ba678ed65742e4a8982f71d5c0 (diff) |
crypto: virtio - Handle dataq logic with tasklet
Doing ipsec produces a spinlock recursion warning.
This is due to crypto_finalize_request() being called in the upper half.
Move virtual data queue processing of virtio-crypto driver to tasklet.
Fixes: dbaf0624ffa57 ("crypto: add virtio-crypto driver")
Reported-by: Halil Pasic <pasic@linux.ibm.com>
Signed-off-by: wangyangxin <wangyangxin1@huawei.com>
Signed-off-by: Gonglei <arei.gonglei@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto/virtio/virtio_crypto_common.h')
-rw-r--r-- | drivers/crypto/virtio/virtio_crypto_common.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/crypto/virtio/virtio_crypto_common.h b/drivers/crypto/virtio/virtio_crypto_common.h index 154590e1f764..7059bbe5a2eb 100644 --- a/drivers/crypto/virtio/virtio_crypto_common.h +++ b/drivers/crypto/virtio/virtio_crypto_common.h @@ -10,6 +10,7 @@ #include <linux/virtio.h> #include <linux/crypto.h> #include <linux/spinlock.h> +#include <linux/interrupt.h> #include <crypto/aead.h> #include <crypto/aes.h> #include <crypto/engine.h> @@ -28,6 +29,7 @@ struct data_queue { char name[32]; struct crypto_engine *engine; + struct tasklet_struct done_task; }; struct virtio_crypto { |