Commit 2f07784f authored by James Smart's avatar James Smart Committed by Martin K. Petersen

scsi: lpfc: Correct oops on vport port resets

Correct oops on vport port resets. Incorrect WQE type, thus the clearing
code actually overstepped the WQE.
Signed-off-by: default avatarDick Kennedy <dick.kennedy@broadcom.com>
Signed-off-by: default avatarJames Smart <james.smart@broadcom.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent f2bf460c
...@@ -17221,7 +17221,8 @@ lpfc_drain_txq(struct lpfc_hba *phba) ...@@ -17221,7 +17221,8 @@ lpfc_drain_txq(struct lpfc_hba *phba)
unsigned long iflags = 0; unsigned long iflags = 0;
char *fail_msg = NULL; char *fail_msg = NULL;
struct lpfc_sglq *sglq; struct lpfc_sglq *sglq;
union lpfc_wqe wqe; union lpfc_wqe128 wqe128;
union lpfc_wqe *wqe = (union lpfc_wqe *) &wqe128;
uint32_t txq_cnt = 0; uint32_t txq_cnt = 0;
spin_lock_irqsave(&pring->ring_lock, iflags); spin_lock_irqsave(&pring->ring_lock, iflags);
...@@ -17260,9 +17261,9 @@ lpfc_drain_txq(struct lpfc_hba *phba) ...@@ -17260,9 +17261,9 @@ lpfc_drain_txq(struct lpfc_hba *phba)
piocbq->sli4_xritag = sglq->sli4_xritag; piocbq->sli4_xritag = sglq->sli4_xritag;
if (NO_XRI == lpfc_sli4_bpl2sgl(phba, piocbq, sglq)) if (NO_XRI == lpfc_sli4_bpl2sgl(phba, piocbq, sglq))
fail_msg = "to convert bpl to sgl"; fail_msg = "to convert bpl to sgl";
else if (lpfc_sli4_iocb2wqe(phba, piocbq, &wqe)) else if (lpfc_sli4_iocb2wqe(phba, piocbq, wqe))
fail_msg = "to convert iocb to wqe"; fail_msg = "to convert iocb to wqe";
else if (lpfc_sli4_wq_put(phba->sli4_hba.els_wq, &wqe)) else if (lpfc_sli4_wq_put(phba->sli4_hba.els_wq, wqe))
fail_msg = " - Wq is full"; fail_msg = " - Wq is full";
else else
lpfc_sli_ringtxcmpl_put(phba, pring, piocbq); lpfc_sli_ringtxcmpl_put(phba, pring, piocbq);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment