Loading
RDMA/hns: Fix spin_unlock_irqrestore() called with IRQs enabled
driver inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IAL7SX ---------------------------------------------------------------------- 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 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] hclge_init_roce_client_instance+0x78/0x1d8 [hclge] hclge_init_client_instance+0x108/0x168 [hclge] hnae3_register_client+0x120/0x5d8 [hnae3] hns_roce_hw_v2_init+0x28/0xff8 [hns_roce_hw_v2] do_one_initcall+0x7c/0x368 do_init_module+0x60/0x220 load_module+0x570/0x668 init_module_from_file+0x8c/0xd0 idempotent_init_module+0x188/0x260 __arm64_sys_finit_module+0x70/0xe0 invoke_syscall+0x50/0x128 el0_svc_common.constprop.0+0xc8/0xf0 do_el0_svc+0x24/0x38 el0_svc+0x64/0x268 el0t_64_sync_handler+0xc0/0xc8 el0t_64_sync+0x188/0x190 irq event stamp: 0 Fixes: 9a443537 ("IB/hns: Add driver files for hns RoCE driver") Signed-off-by:Chengchang Tang <tangchengchang@huawei.com> Signed-off-by:
Xinghai Cen <cenxinghai@h-partners.com>