From: Bart Van Assche <bvanassche@acm.org>
To: "Martin K . Petersen" <martin.petersen@oracle.com>,
"James E . J . Bottomley" <jejb@linux.vnet.ibm.com>
Cc: James Smart <jsmart2021@gmail.com>,
linux-scsi@vger.kernel.org, Bart Van Assche <bvanassche@acm.org>
Subject: [PATCH 2/3] lpfc: Fix a kernel warning triggered by lpfc_sli4_enable_intr()
Date: Wed, 6 Nov 2019 21:21:56 -0800 [thread overview]
Message-ID: <20191107052158.25788-4-bvanassche@acm.org> (raw)
In-Reply-To: <20191107052158.25788-1-bvanassche@acm.org>
Fix the following lockdep warning:
============================================
WARNING: possible recursive locking detected
5.4.0-rc6-dbg+ #2 Not tainted
--------------------------------------------
systemd-udevd/130 is trying to acquire lock:
ffffffff826b05d0 (cpu_hotplug_lock.rw_sem){++++}, at: irq_calc_affinity_vectors+0x63/0x90
but task is already holding lock:
ffffffff826b05d0 (cpu_hotplug_lock.rw_sem){++++}, at: lpfc_sli4_enable_intr+0x422/0xd50 [lpfc]
other info that might help us debug this:
Possible unsafe locking scenario:
CPU0
----
lock(cpu_hotplug_lock.rw_sem);
lock(cpu_hotplug_lock.rw_sem);
*** DEADLOCK ***
May be due to missing lock nesting notation
2 locks held by systemd-udevd/130:
#0: ffff8880d53fe210 (&dev->mutex){....}, at: __device_driver_lock+0x4a/0x70
#1: ffffffff826b05d0 (cpu_hotplug_lock.rw_sem){++++}, at: lpfc_sli4_enable_intr+0x422/0xd50 [lpfc]
stack backtrace:
CPU: 1 PID: 130 Comm: systemd-udevd Not tainted 5.4.0-rc6-dbg+ #2
Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
Call Trace:
dump_stack+0xa5/0xe6
__lock_acquire.cold+0xf7/0x23a
lock_acquire+0x106/0x240
cpus_read_lock+0x41/0xe0
irq_calc_affinity_vectors+0x63/0x90
__pci_enable_msix_range+0x10a/0x950
pci_alloc_irq_vectors_affinity+0x144/0x210
lpfc_sli4_enable_intr+0x4b2/0xd50 [lpfc]
lpfc_pci_probe_one+0x1411/0x22b0 [lpfc]
local_pci_probe+0x7c/0xc0
pci_device_probe+0x25d/0x390
really_probe+0x170/0x510
driver_probe_device+0x127/0x190
device_driver_attach+0x98/0xa0
__driver_attach+0xb6/0x1a0
bus_for_each_dev+0x100/0x150
driver_attach+0x31/0x40
bus_add_driver+0x246/0x300
driver_register+0xe0/0x170
__pci_register_driver+0xde/0xf0
lpfc_init+0x134/0x1000 [lpfc]
do_one_initcall+0xda/0x47e
do_init_module+0x10a/0x3b0
load_module+0x4318/0x47c0
__do_sys_finit_module+0x134/0x1d0
__x64_sys_finit_module+0x47/0x50
do_syscall_64+0x6f/0x2e0
entry_SYSCALL_64_after_hwframe+0x49/0xbe
Fixes: dcaa21367938 ("scsi: lpfc: Change default IRQ model on AMD architectures")
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
drivers/scsi/lpfc/lpfc_init.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
index 28e6a763f106..37e57fd9ba5d 100644
--- a/drivers/scsi/lpfc/lpfc_init.c
+++ b/drivers/scsi/lpfc/lpfc_init.c
@@ -11580,9 +11580,7 @@ lpfc_sli4_enable_intr(struct lpfc_hba *phba, uint32_t cfg_mode)
retval = 0;
if (!retval) {
/* Now, try to enable MSI-X interrupt mode */
- get_online_cpus();
retval = lpfc_sli4_enable_msix(phba);
- put_online_cpus();
if (!retval) {
/* Indicate initialization to MSI-X mode */
phba->intr_type = MSIX;
--
2.23.0
next prev parent reply other threads:[~2019-11-07 5:22 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-11-07 5:21 [PATCH 0/3] Three lpfc fixes Bart Van Assche
2019-11-07 5:21 ` [PATCH 1/3] lpfc: Fix a kernel warning triggered by lpfc_get_sgl_per_hdwq() Bart Van Assche
2019-11-08 22:36 ` James Smart
2019-11-07 5:21 ` [PATCH 1/2] qla2xxx: Remove an include directive Bart Van Assche
2019-11-07 5:21 ` Bart Van Assche [this message]
2019-11-08 22:39 ` [PATCH 2/3] lpfc: Fix a kernel warning triggered by lpfc_sli4_enable_intr() James Smart
2019-11-07 5:21 ` [PATCH 2/2] qla2xxx: Fix a dma_pool_free() call Bart Van Assche
2019-11-07 5:21 ` [PATCH 3/3] lpfc: Fix lpfc_cpumask_of_node_init() Bart Van Assche
2019-11-08 22:43 ` James Smart
2019-11-09 2:49 ` Bart Van Assche
2019-11-09 2:31 ` [PATCH 0/3] Three lpfc fixes Martin K. Petersen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191107052158.25788-4-bvanassche@acm.org \
--to=bvanassche@acm.org \
--cc=jejb@linux.vnet.ibm.com \
--cc=jsmart2021@gmail.com \
--cc=linux-scsi@vger.kernel.org \
--cc=martin.petersen@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.