Comment 7 for bug 1971193

Revision history for this message
Jeff Lane  (bladernr) wrote :

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 eb2f403f098fedb4c58283e9532df2ff0d2a36e9
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 e294647b1aed4247fe52851f3a3b2b19ae906228 ]

    In an attempt to log message 0126 with LOG_TRACE_EVENT, the following hard
    lockup call trace hangs the system.

    Call Trace:
     _raw_spin_lock_irqsave+0x32/0x40
     lpfc_dmp_dbg.part.32+0x28/0x220 [lpfc]
     lpfc_cmpl_els_fdisc+0x145/0x460 [lpfc]
     lpfc_sli_cancel_jobs+0x92/0xd0 [lpfc]
     lpfc_els_flush_cmd+0x43c/0x670 [lpfc]
     lpfc_els_flush_all_cmd+0x37/0x60 [lpfc]
     lpfc_sli4_async_event_proc+0x956/0x1720 [lpfc]
     lpfc_do_work+0x1485/0x1d70 [lpfc]
     kthread+0x112/0x130
     ret_from_fork+0x1f/0x40
    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
    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>