|
@@ -8371,11 +8371,17 @@ lpfc_cmpl_reg_new_vport(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
|
|
spin_lock_irq(shost->host_lock);
|
|
spin_lock_irq(shost->host_lock);
|
|
vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI;
|
|
vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI;
|
|
spin_unlock_irq(shost->host_lock);
|
|
spin_unlock_irq(shost->host_lock);
|
|
- if (vport->port_type == LPFC_PHYSICAL_PORT
|
|
|
|
- && !(vport->fc_flag & FC_LOGO_RCVD_DID_CHNG))
|
|
|
|
- lpfc_issue_init_vfi(vport);
|
|
|
|
- else
|
|
|
|
|
|
+ if (mb->mbxStatus == MBX_NOT_FINISHED)
|
|
|
|
+ break;
|
|
|
|
+ if ((vport->port_type == LPFC_PHYSICAL_PORT) &&
|
|
|
|
+ !(vport->fc_flag & FC_LOGO_RCVD_DID_CHNG)) {
|
|
|
|
+ if (phba->sli_rev == LPFC_SLI_REV4)
|
|
|
|
+ lpfc_issue_init_vfi(vport);
|
|
|
|
+ else
|
|
|
|
+ lpfc_initial_flogi(vport);
|
|
|
|
+ } else {
|
|
lpfc_initial_fdisc(vport);
|
|
lpfc_initial_fdisc(vport);
|
|
|
|
+ }
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|