Message ID | 20240128042906.557038-1-quanyang.wang@windriver.com (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Herbert Xu |
Headers | show |
Series | crypto: xilinx: call finalize with bh disabled | expand |
On Sun, Jan 28, 2024 at 12:29:06PM +0800, quanyang.wang@windriver.com wrote: > From: Quanyang Wang <quanyang.wang@windriver.com> > > When calling crypto_finalize_request, BH should be disabled to avoid > triggering the following calltrace: > > ------------[ cut here ]------------ > WARNING: CPU: 2 PID: 74 at crypto/crypto_engine.c:58 crypto_finalize_request+0xa0/0x118 > Modules linked in: cryptodev(O) > CPU: 2 PID: 74 Comm: firmware:zynqmp Tainted: G O 6.8.0-rc1-yocto-standard #323 > Hardware name: ZynqMP ZCU102 Rev1.0 (DT) > pstate: 40000005 (nZcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > pc : crypto_finalize_request+0xa0/0x118 > lr : crypto_finalize_request+0x104/0x118 > sp : ffffffc085353ce0 > x29: ffffffc085353ce0 x28: 0000000000000000 x27: ffffff8808ea8688 > x26: ffffffc081715038 x25: 0000000000000000 x24: ffffff880100db00 > x23: ffffff880100da80 x22: 0000000000000000 x21: 0000000000000000 > x20: ffffff8805b14000 x19: ffffff880100da80 x18: 0000000000010450 > x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000000000 > x14: 0000000000000003 x13: 0000000000000000 x12: ffffff880100dad0 > x11: 0000000000000000 x10: ffffffc0832dcd08 x9 : ffffffc0812416d8 > x8 : 00000000000001f4 x7 : ffffffc0830d2830 x6 : 0000000000000001 > x5 : ffffffc082091000 x4 : ffffffc082091658 x3 : 0000000000000000 > x2 : ffffffc7f9653000 x1 : 0000000000000000 x0 : ffffff8802d20000 > Call trace: > crypto_finalize_request+0xa0/0x118 > crypto_finalize_aead_request+0x18/0x30 > zynqmp_handle_aes_req+0xcc/0x388 > crypto_pump_work+0x168/0x2d8 > kthread_worker_fn+0xfc/0x3a0 > kthread+0x118/0x138 > ret_from_fork+0x10/0x20 > irq event stamp: 40 > hardirqs last enabled at (39): [<ffffffc0812416f8>] _raw_spin_unlock_irqrestore+0x70/0xb0 > hardirqs last disabled at (40): [<ffffffc08122d208>] el1_dbg+0x28/0x90 > softirqs last enabled at (36): [<ffffffc080017dec>] kernel_neon_begin+0x8c/0xf0 > softirqs last disabled at (34): [<ffffffc080017dc0>] kernel_neon_begin+0x60/0xf0 > ---[ end trace 0000000000000000 ]--- > > Signed-off-by: Quanyang Wang <quanyang.wang@windriver.com> > --- > drivers/crypto/xilinx/zynqmp-aes-gcm.c | 3 +++ > 1 file changed, 3 insertions(+) Patch applied. Thanks.
diff --git a/drivers/crypto/xilinx/zynqmp-aes-gcm.c b/drivers/crypto/xilinx/zynqmp-aes-gcm.c index 3c205324b22b6..e614057188409 100644 --- a/drivers/crypto/xilinx/zynqmp-aes-gcm.c +++ b/drivers/crypto/xilinx/zynqmp-aes-gcm.c @@ -231,7 +231,10 @@ static int zynqmp_handle_aes_req(struct crypto_engine *engine, err = zynqmp_aes_aead_cipher(areq); } + local_bh_disable(); crypto_finalize_aead_request(engine, areq, err); + local_bh_enable(); + return 0; }