[BUG] scsi: lpfc: possible ABBA deadlock

From: Jia-Ju Bai
Date: Thu Jul 15 2021 - 06:38:02 EST


Hello,

I find there is a possible ABBA deadlock in the lpfc driver in Linux 5.10:

In lpfc_nvmet_unsol_fcp_issue_abort():
3502:     spin_lock_irqsave(&ctxp->ctxlock, flags);
3504: spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock);

In lpfc_sli4_nvmet_xri_aborted():
1787: spin_lock(&phba->sli4_hba.abts_nvmet_buf_list_lock);
1794:     spin_lock(&ctxp->ctxlock);

When lpfc_nvmet_unsol_fcp_issue_abort() and lpfc_sli4_nvmet_xri_aborted() are concurrently executed, the deadlock can occur.

I am not quite sure whether this possible deadlock is real and how to fix it if it is real.
Any feedback would be appreciated, thanks :)


Best wishes,
Jia-Ju Bai