diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_hbadisc.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_hbadisc.c | 8 |
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 | ||