summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJames Smart2012-05-10 03:18:49 +0200
committerJames Bottomley2012-05-17 12:09:21 +0200
commit27aa1b73539f2c7118a68c9baaad590d3a92462f (patch)
treee31d8010936c5687d793b929dd2f2b49f53c91ba /drivers
parent[SCSI] lpfc 8.3.31: Fix driver crash during back-to-back ramp events (diff)
downloadkernel-qcow2-linux-27aa1b73539f2c7118a68c9baaad590d3a92462f.tar.gz
kernel-qcow2-linux-27aa1b73539f2c7118a68c9baaad590d3a92462f.tar.xz
kernel-qcow2-linux-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>
Diffstat (limited to 'drivers')
-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 2ecd719cc2aa..95cff9909eff 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)) {
/*