diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_vport.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_vport.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_vport.c b/drivers/scsi/lpfc/lpfc_vport.c index 6b8d2952e32..30ba5440c67 100644 --- a/drivers/scsi/lpfc/lpfc_vport.c +++ b/drivers/scsi/lpfc/lpfc_vport.c | |||
@@ -464,6 +464,7 @@ disable_vport(struct fc_vport *fc_vport) | |||
464 | struct lpfc_hba *phba = vport->phba; | 464 | struct lpfc_hba *phba = vport->phba; |
465 | struct lpfc_nodelist *ndlp = NULL, *next_ndlp = NULL; | 465 | struct lpfc_nodelist *ndlp = NULL, *next_ndlp = NULL; |
466 | long timeout; | 466 | long timeout; |
467 | struct Scsi_Host *shost = lpfc_shost_from_vport(vport); | ||
467 | 468 | ||
468 | ndlp = lpfc_findnode_did(vport, Fabric_DID); | 469 | ndlp = lpfc_findnode_did(vport, Fabric_DID); |
469 | if (ndlp && NLP_CHK_NODE_ACT(ndlp) | 470 | if (ndlp && NLP_CHK_NODE_ACT(ndlp) |
@@ -498,6 +499,9 @@ disable_vport(struct fc_vport *fc_vport) | |||
498 | * scsi_host_put() to release the vport. | 499 | * scsi_host_put() to release the vport. |
499 | */ | 500 | */ |
500 | lpfc_mbx_unreg_vpi(vport); | 501 | lpfc_mbx_unreg_vpi(vport); |
502 | spin_lock_irq(shost->host_lock); | ||
503 | vport->fc_flag |= FC_VPORT_NEEDS_INIT_VPI; | ||
504 | spin_unlock_irq(shost->host_lock); | ||
501 | 505 | ||
502 | lpfc_vport_set_state(vport, FC_VPORT_DISABLED); | 506 | lpfc_vport_set_state(vport, FC_VPORT_DISABLED); |
503 | lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, | 507 | lpfc_printf_vlog(vport, KERN_ERR, LOG_VPORT, |