scsi: lpfc: Fix vport indices in lpfc_find_vport_by_vpid()
Calls to lpfc_find_vport_by_vpid() for the highest indexed vport fails with error, "2936 Could not find Vport mapped to vpi XXX". Our vport indices in the loop and if-clauses were off by one. Correct the vpid range used for vpi lookup to include the highest possible vpid. Link: https://lore.kernel.org/r/20210301171821.3427-3-jsmart2021@gmail.com Co-developed-by: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: Dick Kennedy <dick.kennedy@broadcom.com> Signed-off-by: James Smart <jsmart2021@gmail.com> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
committed by
Martin K. Petersen
parent
9302154c07
commit
58c36e80ee
@@ -6081,12 +6081,12 @@ lpfc_find_vport_by_vpid(struct lpfc_hba *phba, uint16_t vpi)
|
|||||||
* Translate the physical vpi to the logical vpi. The
|
* Translate the physical vpi to the logical vpi. The
|
||||||
* vport stores the logical vpi.
|
* vport stores the logical vpi.
|
||||||
*/
|
*/
|
||||||
for (i = 0; i < phba->max_vpi; i++) {
|
for (i = 0; i <= phba->max_vpi; i++) {
|
||||||
if (vpi == phba->vpi_ids[i])
|
if (vpi == phba->vpi_ids[i])
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (i >= phba->max_vpi) {
|
if (i > phba->max_vpi) {
|
||||||
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
|
lpfc_printf_log(phba, KERN_ERR, LOG_TRACE_EVENT,
|
||||||
"2936 Could not find Vport mapped "
|
"2936 Could not find Vport mapped "
|
||||||
"to vpi %d\n", vpi);
|
"to vpi %d\n", vpi);
|
||||||
|
Reference in New Issue
Block a user