aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_hbadisc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hbadisc.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_hbadisc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc_hbadisc.c b/drivers/scsi/lpfc/lpfc_hbadisc.c
index 20fca3f6d43b..3c06aa54a3e5 100644
--- a/drivers/scsi/lpfc/lpfc_hbadisc.c
+++ b/drivers/scsi/lpfc/lpfc_hbadisc.c
@@ -1798,8 +1798,8 @@ lpfc_mbx_cmpl_reg_vfi(struct lpfc_hba *phba, LPFC_MBOXQ_t *mboxq)
1798 lpfc_vport_set_state(vport, FC_VPORT_FAILED); 1798 lpfc_vport_set_state(vport, FC_VPORT_FAILED);
1799 goto fail_free_mem; 1799 goto fail_free_mem;
1800 } 1800 }
1801 /* Mark the vport has registered with its VFI */ 1801 /* The VPI is implicitly registered when the VFI is registered */
1802 vport->vfi_state |= LPFC_VFI_REGISTERED; 1802 vport->vpi_state |= LPFC_VPI_REGISTERED;
1803 1803
1804 if (vport->port_state == LPFC_FABRIC_CFG_LINK) { 1804 if (vport->port_state == LPFC_FABRIC_CFG_LINK) {
1805 lpfc_start_fdiscs(phba); 1805 lpfc_start_fdiscs(phba);
@@ -2257,6 +2257,7 @@ lpfc_mbx_cmpl_unreg_vpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
2257 mb->mbxStatus); 2257 mb->mbxStatus);
2258 break; 2258 break;
2259 } 2259 }
2260 vport->vpi_state &= ~LPFC_VPI_REGISTERED;
2260 vport->unreg_vpi_cmpl = VPORT_OK; 2261 vport->unreg_vpi_cmpl = VPORT_OK;
2261 mempool_free(pmb, phba->mbox_mem_pool); 2262 mempool_free(pmb, phba->mbox_mem_pool);
2262 /* 2263 /*
@@ -2314,6 +2315,7 @@ lpfc_mbx_cmpl_reg_vpi(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb)
2314 goto out; 2315 goto out;
2315 } 2316 }
2316 2317
2318 vport->vpi_state |= LPFC_VPI_REGISTERED;
2317 vport->num_disc_nodes = 0; 2319 vport->num_disc_nodes = 0;
2318 /* go thru NPR list and issue ELS PLOGIs */ 2320 /* go thru NPR list and issue ELS PLOGIs */
2319 if (vport->fc_npr_cnt) 2321 if (vport->fc_npr_cnt)
@@ -4464,7 +4466,7 @@ lpfc_unregister_unused_fcf(struct lpfc_hba *phba)
4464 for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) { 4466 for (i = 0; i <= phba->max_vports && vports[i] != NULL; i++) {
4465 lpfc_mbx_unreg_vpi(vports[i]); 4467 lpfc_mbx_unreg_vpi(vports[i]);
4466 vports[i]->fc_flag |= FC_VPORT_NEEDS_REG_VPI; 4468 vports[i]->fc_flag |= FC_VPORT_NEEDS_REG_VPI;
4467 vports[i]->vfi_state &= ~LPFC_VFI_REGISTERED; 4469 vports[i]->vpi_state &= ~LPFC_VPI_REGISTERED;
4468 } 4470 }
4469 lpfc_destroy_vport_work_array(phba, vports); 4471 lpfc_destroy_vport_work_array(phba, vports);
4470 4472