The same CPU tries to claim the phba->port_list_lock twice.
Move the cfg_log_verbose checks as part of the lpfc_printf_vlog() and
lpfc_printf_log() macros before calling lpfc_dmp_dbg(). There is no need
to take the phba->port_list_lock within lpfc_dmp_dbg().
Link: https://<email address hidden>
Co-developed-by: Justin Tee <email address hidden>
Signed-off-by: Justin Tee <email address hidden>
Signed-off-by: James Smart <email address hidden>
Signed-off-by: Martin K. Petersen <email address hidden>
Signed-off-by: Sasha Levin <email address hidden>
Signed-off-by: Kamal Mostafa <email address hidden>
Signed-off-by: Stefan Bader <email address hidden>
So this is actually in 5.19, and has been pulled into 22.04 via our 5.15 kernel. Is there anything more to do here?
commit eb2f403f098fedb 4c58283e9532df2 ff0d2a36e9
Author: James Smart <email address hidden>
Date: Tue Apr 12 15:19:44 2022 -0700
scsi: lpfc: Move cfg_log_verbose check before calling lpfc_dmp_dbg()
BugLink: https:/ /bugs.launchpad .net/bugs/ 1981864
[ Upstream commit e294647b1aed424 7fe52851f3a3b2b 19ae906228 ]
In an attempt to log message 0126 with LOG_TRACE_EVENT, the following hard
lockup call trace hangs the system.
Call Trace: spin_lock_ irqsave+ 0x32/0x40 dmp_dbg. part.32+ 0x28/0x220 [lpfc] cmpl_els_ fdisc+0x145/ 0x460 [lpfc] sli_cancel_ jobs+0x92/ 0xd0 [lpfc] els_flush_ cmd+0x43c/ 0x670 [lpfc] els_flush_ all_cmd+ 0x37/0x60 [lpfc] sli4_async_ event_proc+ 0x956/0x1720 [lpfc] do_work+ 0x1485/ 0x1d70 [lpfc] 0x112/0x130 from_fork+ 0x1f/0x40
_raw_
lpfc_
lpfc_
lpfc_
lpfc_
lpfc_
lpfc_
lpfc_
kthread+
ret_
Kernel panic - not syncing: Hard LOCKUP
The same CPU tries to claim the phba->port_ list_lock twice.
Move the cfg_log_verbose checks as part of the lpfc_printf_vlog() and printf_ log() macros before calling lpfc_dmp_dbg(). There is no need list_lock within lpfc_dmp_dbg().
lpfc_
to take the phba->port_
Link: https://<email address hidden> developed- by: Justin Tee <email address hidden>
Co-
Signed-off-by: Justin Tee <email address hidden>
Signed-off-by: James Smart <email address hidden>
Signed-off-by: Martin K. Petersen <email address hidden>
Signed-off-by: Sasha Levin <email address hidden>
Signed-off-by: Kamal Mostafa <email address hidden>
Signed-off-by: Stefan Bader <email address hidden>