crypto: gemini - call finalize with bh disabled
authorCorentin Labbe <clabbe@baylibre.com>
Mon, 21 Feb 2022 12:08:32 +0000 (12:08 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 8 Apr 2022 12:23:08 +0000 (14:23 +0200)
[ Upstream commit 7f22421103c5a7f9a1726f0ed125274c38174ddb ]

Doing ipsec produces a spinlock recursion warning.
This is due to not disabling BH during crypto completion function.

Fixes: 46c5338db7bd45b2 ("crypto: sl3516 - Add sl3516 crypto engine")
Signed-off-by: Corentin Labbe <clabbe@baylibre.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/gemini/sl3516-ce-cipher.c

index c1c2b1d..f2be0a7 100644 (file)
@@ -264,7 +264,9 @@ static int sl3516_ce_handle_cipher_request(struct crypto_engine *engine, void *a
        struct skcipher_request *breq = container_of(areq, struct skcipher_request, base);
 
        err = sl3516_ce_cipher(breq);
+       local_bh_disable();
        crypto_finalize_skcipher_request(engine, breq, err);
+       local_bh_enable();
 
        return 0;
 }