diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_els.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_els.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index 017c933d60ab..f80156246e51 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c | |||
@@ -6962,6 +6962,7 @@ lpfc_sli4_els_xri_aborted(struct lpfc_hba *phba, | |||
6962 | uint16_t xri = bf_get(lpfc_wcqe_xa_xri, axri); | 6962 | uint16_t xri = bf_get(lpfc_wcqe_xa_xri, axri); |
6963 | struct lpfc_sglq *sglq_entry = NULL, *sglq_next = NULL; | 6963 | struct lpfc_sglq *sglq_entry = NULL, *sglq_next = NULL; |
6964 | unsigned long iflag = 0; | 6964 | unsigned long iflag = 0; |
6965 | struct lpfc_sli_ring *pring = &phba->sli.ring[LPFC_ELS_RING]; | ||
6965 | 6966 | ||
6966 | spin_lock_irqsave(&phba->hbalock, iflag); | 6967 | spin_lock_irqsave(&phba->hbalock, iflag); |
6967 | spin_lock(&phba->sli4_hba.abts_sgl_list_lock); | 6968 | spin_lock(&phba->sli4_hba.abts_sgl_list_lock); |
@@ -6974,6 +6975,10 @@ lpfc_sli4_els_xri_aborted(struct lpfc_hba *phba, | |||
6974 | sglq_entry->state = SGL_FREED; | 6975 | sglq_entry->state = SGL_FREED; |
6975 | spin_unlock(&phba->sli4_hba.abts_sgl_list_lock); | 6976 | spin_unlock(&phba->sli4_hba.abts_sgl_list_lock); |
6976 | spin_unlock_irqrestore(&phba->hbalock, iflag); | 6977 | spin_unlock_irqrestore(&phba->hbalock, iflag); |
6978 | |||
6979 | /* Check if TXQ queue needs to be serviced */ | ||
6980 | if (pring->txq_cnt) | ||
6981 | lpfc_worker_wake_up(phba); | ||
6977 | return; | 6982 | return; |
6978 | } | 6983 | } |
6979 | } | 6984 | } |