lpfc 8.1.3: Fix deadlock in lpfc_fdmi_tmo_handler
Subsystems (2)
PATCH 5/9 lpfc 8.1.3: Fix deadlock in lpfc_fdmi_tmo_handler
Fix deadlock in lpfc_fdmi_tmo_handler
lpfc_fdmi_tmo_handler was calling lpfc_fdmi_cmd with the host_lock held. lpfc_fdmi_cmd assumes the host_lock is released as it calls functions that acquire the host_lock. lpfc_fdmi_tmo_handler acquired the host_lock to protect access to work_hba_events. This was already checked in the worker thread so we can remove that code completely and remove access to the host_lock.
Signed-off-by Jamie Wellnitz <[email protected]>
drivers/scsi/lpfc/lpfc_ct.c +0 -6
@@ -1166,11 +1166,6 @@ lpfc_fdmi_tmo_handler(struct lpfc_hba *p {struct lpfc_nodelist *ndlp; -spin_lock_irq (phba->host->host_lock); -if (!(phba->work_hba_events &WORKER_FDMI_TMO )) { -spin_unlock_irq (phba->host->host_lock); -return ; - } ndlp =lpfc_findnode_did (phba,NLP_SEARCH_ALL ,FDMI_DID );if (ndlp) {if (system_utsname.nodename[0 ] !='\0' ) {
@@ -1179,7 +1174,6 @@ lpfc_fdmi_tmo_handler(struct lpfc_hba *pmod_timer (&phba->fc_fdmitmo, jiffies +HZ *60 ); } } -spin_unlock_irq (phba->host->host_lock);return ; }