forked from Minki/linux
scsi: lpfc: Fix FCP hba_wqidx assignment
The driver is encountering oops in lpfc_sli_calc_ring. The driver is setting hba_wqidx for FCP based on the policy in use for NVME. The two may not be the same. Change to set the wqidx based on the FCP policy. Cc: <stable@vger.kernel.org> # 4.12+ Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: James Smart <james.smart@broadcom.com> Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
f485c18db2
commit
8e036a9497
@ -9396,10 +9396,13 @@ lpfc_sli4_calc_ring(struct lpfc_hba *phba, struct lpfc_iocbq *piocb)
|
||||
* for abort iocb hba_wqidx should already
|
||||
* be setup based on what work queue we used.
|
||||
*/
|
||||
if (!(piocb->iocb_flag & LPFC_USE_FCPWQIDX))
|
||||
if (!(piocb->iocb_flag & LPFC_USE_FCPWQIDX)) {
|
||||
piocb->hba_wqidx =
|
||||
lpfc_sli4_scmd_to_wqidx_distr(phba,
|
||||
piocb->context1);
|
||||
piocb->hba_wqidx = piocb->hba_wqidx %
|
||||
phba->cfg_fcp_io_channel;
|
||||
}
|
||||
return phba->sli4_hba.fcp_wq[piocb->hba_wqidx]->pring;
|
||||
} else {
|
||||
if (unlikely(!phba->sli4_hba.oas_wq))
|
||||
|
Loading…
Reference in New Issue
Block a user