Selvin Xavier
88018bc071
RDMA/bnxt_re: Fix recursive lock warning in debug kernel
[ Upstream commit d455f29f6d ]
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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-11-13 11:14:57 -08:00
..
2017-11-02 11:10:55 +01:00
2018-11-13 11:14:55 -08:00
2018-05-01 12:58:21 -07:00
2018-09-19 22:43:35 +02:00
2018-10-03 17:00:59 -07:00
2018-07-22 14:28:43 +02:00
2018-07-03 11:24:56 +02:00
2018-10-13 09:27:25 +02:00
2017-11-02 11:10:55 +01:00
2018-11-13 11:14:52 -08:00
2018-11-13 11:14:54 -08:00
2018-08-03 07:50:31 +02:00
2018-09-05 09:26:42 +02:00
2018-11-13 11:14:46 -08:00
2018-10-18 09:16:22 +02:00
2018-10-20 09:48:52 +02:00
2018-11-13 11:14:54 -08:00
2018-07-03 11:24:51 +02:00
2018-10-13 09:27:28 +02:00
2018-08-24 13:09:08 +02:00
2018-04-12 12:32:13 +02:00
2017-11-02 11:10:55 +01:00
2018-09-26 08:38:05 +02:00
2018-06-05 11:41:57 +02:00
2018-10-03 17:00:53 -07:00
2017-11-02 11:10:55 +01:00
2018-09-09 19:55:56 +02:00
2018-04-26 11:02:03 +02:00
2018-09-26 08:38:10 +02:00
2017-11-02 11:10:55 +01:00
2018-05-01 12:58:24 -07:00
2017-08-28 17:15:16 +02:00
2018-11-10 07:48:34 -08:00
2018-11-10 07:48:35 -08:00
2018-10-20 09:48:53 +02:00
2017-11-02 11:10:55 +01:00
2018-10-10 08:54:28 +02:00
2018-11-13 11:14:52 -08:00
2017-11-02 11:10:55 +01:00
2018-10-20 09:48:50 +02:00
2018-11-13 11:14:51 -08:00
2018-05-30 07:52:34 +02:00
2018-08-09 12:16:39 +02:00
2018-10-10 08:54:24 +02:00
2018-11-13 11:14:57 -08:00
2018-11-10 07:48:36 -08:00
2018-10-20 09:48:52 +02:00
2018-09-15 09:45:29 +02:00
2018-08-22 07:46:11 +02:00
2018-03-19 08:42:50 +01:00
2018-11-13 11:14:52 -08:00
2018-09-19 22:43:41 +02:00
2018-09-09 19:55:54 +02:00
2017-11-02 11:10:55 +01:00
2018-11-13 11:14:45 -08:00
2018-11-04 14:52:47 +01:00
2018-08-03 07:50:38 +02:00
2017-11-02 11:10:55 +01:00
2018-05-25 16:17:47 +02:00
2018-10-18 09:16:21 +02:00
2018-11-10 07:48:33 -08:00
2018-11-13 11:14:53 -08:00
2018-11-13 11:14:54 -08:00
2018-01-17 09:45:27 +01:00
2018-11-13 11:14:56 -08:00
2018-08-24 13:09:06 +02:00
2018-04-26 11:02:13 +02:00
2017-11-02 11:10:55 +01:00
2018-09-09 19:56:01 +02:00
2018-10-13 09:27:28 +02:00
2018-08-24 13:09:14 +02:00
2018-10-13 09:27:27 +02:00
2017-11-02 11:10:55 +01:00
2018-05-30 07:52:28 +02:00
2018-09-26 08:38:12 +02:00
2018-10-20 09:48:51 +02:00
2018-11-13 11:14:46 -08:00
2018-10-18 09:16:24 +02:00
2018-08-15 18:12:48 +02:00
2018-11-13 11:14:56 -08:00
2018-09-29 03:06:03 -07:00
2017-11-02 11:10:55 +01:00
2018-10-03 17:00:47 -07:00
2017-09-08 18:26:51 -07:00
2018-11-10 07:48:34 -08:00
2018-09-15 09:45:27 +02:00
2017-12-14 09:53:08 +01:00
2017-11-02 11:10:55 +01:00
2018-10-03 17:00:55 -07:00
2018-06-21 04:02:48 +09:00
2018-09-26 08:38:03 +02:00
2018-09-29 03:06:04 -07:00
2018-09-26 08:38:13 +02:00
2018-11-04 14:52:42 +01:00
2017-11-02 11:10:55 +01:00
2018-11-13 11:14:57 -08:00
2017-11-02 11:10:55 +01:00
2018-11-04 14:52:38 +01:00
2018-11-13 11:14:52 -08:00
2017-08-28 13:52:22 +02:00
2017-11-02 11:10:55 +01:00
2018-10-20 09:48:53 +02:00
2018-10-18 09:16:21 +02:00
2018-06-21 04:02:54 +09:00
2018-11-13 11:14:56 -08:00
2018-04-24 09:36:29 +02:00
2018-10-13 09:27:26 +02:00
2018-09-19 22:43:40 +02:00
2018-11-10 07:48:36 -08:00
2018-10-03 17:00:46 -07:00
2018-08-03 07:50:23 +02:00
2018-11-04 14:52:49 +01:00
2018-11-04 14:52:39 +01:00
2017-08-29 08:52:51 -05:00
2018-10-13 09:27:30 +02:00
2017-11-02 11:10:55 +01:00
2018-07-03 11:24:47 +02:00
2018-08-03 07:50:24 +02:00
2018-10-10 08:54:26 +02:00
2018-05-30 07:52:30 +02:00
2017-11-02 11:10:55 +01:00
2018-02-25 11:07:53 +01:00