linux_dsm_epyc7002/drivers/infiniband/hw
Selvin Xavier d455f29f6d RDMA/bnxt_re: Fix recursive lock warning in debug kernel
Fix possible recursive lock warning. Its a false warning as the locks are
part of two differnt HW Queue data structure - cmdq and creq. Debug kernel
is throwing the following warning and stack trace.

[  783.914967] ============================================
[  783.914970] WARNING: possible recursive locking detected
[  783.914973] 4.19.0-rc2+ #33 Not tainted
[  783.914976] --------------------------------------------
[  783.914979] swapper/2/0 is trying to acquire lock:
[  783.914982] 000000002aa3949d (&(&hwq->lock)->rlock){..-.}, at: bnxt_qplib_service_creq+0x232/0x350 [bnxt_re]
[  783.914999]
but task is already holding lock:
[  783.915002] 00000000be73920d (&(&hwq->lock)->rlock){..-.}, at: bnxt_qplib_service_creq+0x2a/0x350 [bnxt_re]
[  783.915013]
other info that might help us debug this:
[  783.915016]  Possible unsafe locking scenario:

[  783.915019]        CPU0
[  783.915021]        ----
[  783.915034]   lock(&(&hwq->lock)->rlock);
[  783.915035]   lock(&(&hwq->lock)->rlock);
[  783.915037]
 *** DEADLOCK ***

[  783.915038]  May be due to missing lock nesting notation

[  783.915039] 1 lock held by swapper/2/0:
[  783.915040]  #0: 00000000be73920d (&(&hwq->lock)->rlock){..-.}, at: bnxt_qplib_service_creq+0x2a/0x350 [bnxt_re]
[  783.915044]
stack backtrace:
[  783.915046] CPU: 2 PID: 0 Comm: swapper/2 Not tainted 4.19.0-rc2+ #33
[  783.915047] Hardware name: Dell Inc. PowerEdge R730/0599V5, BIOS 1.0.4 08/28/2014
[  783.915048] Call Trace:
[  783.915049]  <IRQ>
[  783.915054]  dump_stack+0x90/0xe3
[  783.915058]  __lock_acquire+0x106c/0x1080
[  783.915061]  ? sched_clock+0x5/0x10
[  783.915063]  lock_acquire+0xbd/0x1a0
[  783.915065]  ? bnxt_qplib_service_creq+0x232/0x350 [bnxt_re]
[  783.915069]  _raw_spin_lock_irqsave+0x4a/0x90
[  783.915071]  ? bnxt_qplib_service_creq+0x232/0x350 [bnxt_re]
[  783.915073]  bnxt_qplib_service_creq+0x232/0x350 [bnxt_re]
[  783.915078]  tasklet_action_common.isra.17+0x197/0x1b0
[  783.915081]  __do_softirq+0xcb/0x3a6
[  783.915084]  irq_exit+0xe9/0x100
[  783.915085]  do_IRQ+0x6a/0x120
[  783.915087]  common_interrupt+0xf/0xf
[  783.915088]  </IRQ>

Use nested notation for the spin_lock to avoid this warning.

Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
2018-10-16 00:03:50 -06:00
..
bnxt_re RDMA/bnxt_re: Fix recursive lock warning in debug kernel 2018-10-16 00:03:50 -06:00
cxgb3 RDMA: Fully setup the device name in ib_register_device 2018-09-26 13:51:36 -06:00
cxgb4 RDMA: Fully setup the device name in ib_register_device 2018-09-26 13:51:36 -06:00
hfi1 Merge branch 'for-rc' into rdma.git for-next 2018-10-16 00:01:02 -06:00
hns RDMA/hns: Bugfix for atomic operation 2018-10-03 16:21:18 -06:00
i40iw RDMA: Fully setup the device name in ib_register_device 2018-09-26 13:51:36 -06:00
mlx4 Merge branch 'for-rc' into rdma.git for-next 2018-10-16 00:01:02 -06:00
mlx5 Merge branch 'for-rc' into rdma.git for-next 2018-10-16 00:01:02 -06:00
mthca RDMA: Remove unused parameter from ib_modify_qp_is_ok() 2018-10-03 16:05:46 -06:00
nes RDMA/drivers: Use dev_name instead of ibdev->name 2018-09-26 13:51:48 -06:00
ocrdma RDMA: Remove unused parameter from ib_modify_qp_is_ok() 2018-10-03 16:05:46 -06:00
qedr RDMA: Remove unused parameter from ib_modify_qp_is_ok() 2018-10-03 16:05:46 -06:00
qib IB/{hfi1, qib, rdmavt}: Move ruc_loopback to rdmavt 2018-10-03 16:38:28 -06:00
usnic RDMA/drivers: Use dev_name instead of ibdev->name 2018-09-26 13:51:48 -06:00
vmw_pvrdma RDMA: Remove unused parameter from ib_modify_qp_is_ok() 2018-10-03 16:05:46 -06:00
Makefile License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00