mirror of
https://github.com/torvalds/linux.git
synced 2024-09-20 06:53:04 +00:00
scsi: lpfc: Fix unintentional double clearing of vmid_flag
The vport->vmid_flag is unintentionally cleared twice after an issue_lip via the lpfc_reinit_vmid routine(). The first call to lpfc_reinit_vmid() is in lpfc_cmpl_els_flogi(). Then lpfc_cmpl_els_flogi_fabric() calls lpfc_register_new_vport(), which calls lpfc_cmpl_reg_new_vport() when the mbox command completes and calls lpfc_reinit_vmid() a second time. Fix by moving the vmid_flag clear outside of the lpfc_reinit_vmid() routine so that vmid_flag is only cleared once upon FLOGI completion. Signed-off-by: Justin Tee <justin.tee@broadcom.com> Link: https://lore.kernel.org/r/20240726231512.92867-5-justintee8345@gmail.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
2be1d4f119
commit
3976beb1b4
|
@ -1099,8 +1099,10 @@ stop_rr_fcf_flogi:
|
|||
sp->cmn.priority_tagging, kref_read(&ndlp->kref));
|
||||
|
||||
/* reinitialize the VMID datastructure before returning */
|
||||
if (lpfc_is_vmid_enabled(phba))
|
||||
if (lpfc_is_vmid_enabled(phba)) {
|
||||
lpfc_reinit_vmid(vport);
|
||||
vport->vmid_flag = 0;
|
||||
}
|
||||
if (sp->cmn.priority_tagging)
|
||||
vport->phba->pport->vmid_flag |= (LPFC_VMID_ISSUE_QFPA |
|
||||
LPFC_VMID_TYPE_PRIO);
|
||||
|
|
|
@ -321,6 +321,5 @@ lpfc_reinit_vmid(struct lpfc_vport *vport)
|
|||
if (!hash_empty(vport->hash_table))
|
||||
hash_for_each_safe(vport->hash_table, bucket, tmp, cur, hnode)
|
||||
hash_del(&cur->hnode);
|
||||
vport->vmid_flag = 0;
|
||||
write_unlock(&vport->vmid_lock);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user