kernel_samsung_a53x/drivers/infiniband/hw/hns
Chengchang Tang 979f4d58ca RDMA/hns: Fix spin_unlock_irqrestore() called with IRQs enabled
[ Upstream commit 74d315b5af180220d561684d15897730135733a6 ]

Fix missuse of spin_lock_irq()/spin_unlock_irq() when
spin_lock_irqsave()/spin_lock_irqrestore() was hold.

This was discovered through the lock debugging, and the corresponding
log is as follows:

raw_local_irq_restore() called with IRQs enabled
WARNING: CPU: 96 PID: 2074 at kernel/locking/irqflag-debug.c:10 warn_bogus_irq_restore+0x30/0x40
...
Call trace:
 warn_bogus_irq_restore+0x30/0x40
 _raw_spin_unlock_irqrestore+0x84/0xc8
 add_qp_to_list+0x11c/0x148 [hns_roce_hw_v2]
 hns_roce_create_qp_common.constprop.0+0x240/0x780 [hns_roce_hw_v2]
 hns_roce_create_qp+0x98/0x160 [hns_roce_hw_v2]
 create_qp+0x138/0x258
 ib_create_qp_kernel+0x50/0xe8
 create_mad_qp+0xa8/0x128
 ib_mad_port_open+0x218/0x448
 ib_mad_init_device+0x70/0x1f8
 add_client_context+0xfc/0x220
 enable_device_and_get+0xd0/0x140
 ib_register_device.part.0+0xf4/0x1c8
 ib_register_device+0x34/0x50
 hns_roce_register_device+0x174/0x3d0 [hns_roce_hw_v2]
 hns_roce_init+0xfc/0x2c0 [hns_roce_hw_v2]
 __hns_roce_hw_v2_init_instance+0x7c/0x1d0 [hns_roce_hw_v2]
 hns_roce_hw_v2_init_instance+0x9c/0x180 [hns_roce_hw_v2]

Fixes: 9a4435375cd1 ("IB/hns: Add driver files for hns RoCE driver")
Signed-off-by: Chengchang Tang <tangchengchang@huawei.com>
Signed-off-by: Junxian Huang <huangjunxian6@hisilicon.com>
Link: https://patch.msgid.link/20240906093444.3571619-6-huangjunxian6@hisilicon.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-11-23 23:21:26 +01:00
..
hns_roce_ah.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hns_roce_alloc.c RDMA/hns: Refactor the hns_roce_buf allocation flow 2024-11-19 12:26:58 +01:00
hns_roce_cmd.c RDMA/hns: Fix incorrect symbol types 2024-11-19 12:26:58 +01:00
hns_roce_cmd.h RDMA/hns: Fix incorrect symbol types 2024-11-19 12:26:58 +01:00
hns_roce_common.h RDMA/hns: Fix incorrect symbol types 2024-11-19 12:26:58 +01:00
hns_roce_cq.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hns_roce_db.c RDMA/hns: Fix incorrect symbol types 2024-11-19 12:26:58 +01:00
hns_roce_device.h RDMA/hns: Fix missing pagesize and alignment check in FRMR 2024-11-23 23:20:11 +01:00
hns_roce_hem.c RDMA/hns: Fix the overflow risk of hem_list_calc_ba_range() 2024-11-23 23:21:25 +01:00
hns_roce_hem.h RDMA/hns: Use complete parentheses in macros 2024-11-19 12:26:59 +01:00
hns_roce_hw_v1.c RDMA/hns: Fix incorrect symbol types 2024-11-19 12:26:58 +01:00
hns_roce_hw_v1.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hns_roce_hw_v2.c RDMA/hns: Modify the print level of CQE error 2024-11-19 12:26:59 +01:00
hns_roce_hw_v2.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hns_roce_hw_v2_dfx.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hns_roce_main.c RDMA/hns: Fix incorrect symbol types 2024-11-19 12:26:58 +01:00
hns_roce_mr.c RDMA/hns: Add mapped page count checking for MTR 2024-11-23 23:21:25 +01:00
hns_roce_pd.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hns_roce_qp.c RDMA/hns: Fix spin_unlock_irqrestore() called with IRQs enabled 2024-11-23 23:21:26 +01:00
hns_roce_restrack.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hns_roce_srq.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00