summaryrefslogtreecommitdiff
path: root/drivers/crypto/virtio/virtio_crypto_common.h
diff options
context:
space:
mode:
authorGonglei (Arei) <arei.gonglei@huawei.com>2023-11-20 11:49:45 +0000
committerHerbert Xu <herbert@gondor.apana.org.au>2023-12-01 18:03:26 +0800
commitfed93fb62e05c38152b0fc1dc9609639e63eed76 (patch)
tree7a775f2ffa65789d40000aca074852af93df6266 /drivers/crypto/virtio/virtio_crypto_common.h
parent8a0d929b53c383ba678ed65742e4a8982f71d5c0 (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.h2
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 {