summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Smart <james.smart@emulex.com>2012-05-09 21:18:49 -0400
committerJames Bottomley <JBottomley@Parallels.com>2012-05-17 11:09:21 +0100
commit27aa1b73539f2c7118a68c9baaad590d3a92462f (patch)
treee31d8010936c5687d793b929dd2f2b49f53c91ba
parent75ad83a452116c00c092bdc4c842c4401cd24080 (diff)
downloadlinux-3.10-27aa1b73539f2c7118a68c9baaad590d3a92462f.tar.gz
linux-3.10-27aa1b73539f2c7118a68c9baaad590d3a92462f.tar.bz2
linux-3.10-27aa1b73539f2c7118a68c9baaad590d3a92462f.zip
[SCSI] lpfc 8.3.31: Reregister VPI for SLI3 after cable moved to new Saturn port
Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com> Signed-off-by: James Smart <james.smart@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r--drivers/scsi/lpfc/lpfc_els.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c
index 2ecd719cc2a..95cff9909ef 100644
--- a/drivers/scsi/lpfc/lpfc_els.c
+++ b/drivers/scsi/lpfc/lpfc_els.c
@@ -707,14 +707,17 @@ lpfc_cmpl_els_flogi_fabric(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
lpfc_sli4_unreg_all_rpis(vport);
lpfc_mbx_unreg_vpi(vport);
spin_lock_irq(shost->host_lock);
- vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI;
- /*
- * If VPI is unreged, driver need to do INIT_VPI
- * before re-registering
- */
vport->fc_flag |= FC_VPORT_NEEDS_INIT_VPI;
spin_unlock_irq(shost->host_lock);
}
+
+ /*
+ * For SLI3 and SLI4, the VPI needs to be reregistered in
+ * response to this fabric parameter change event.
+ */
+ spin_lock_irq(shost->host_lock);
+ vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI;
+ spin_unlock_irq(shost->host_lock);
} else if ((phba->sli_rev == LPFC_SLI_REV4) &&
!(vport->fc_flag & FC_VPORT_NEEDS_REG_VPI)) {
/*