diff options
author | James Smart <james.smart@emulex.com> | 2010-03-15 11:25:44 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-04-11 10:23:51 -0400 |
commit | 4b40c59eced94eea7f4583ffb0dbc33a5fa92499 (patch) | |
tree | 1a60a3f4e931b5a7295b1f2eed2a8d84f5062695 /drivers/scsi/lpfc/lpfc_els.c | |
parent | e2af0d2ed86a2415b0562526601cf2d5cae5a96d (diff) |
[SCSI] lpfc 8.3.11: NPIV changes
- Enable NPIV by default.
- Added code to handle unsolicited LOGO on physical port.
Signed-off-by: Alex Iannicelli <alex.iannicelli@emulex.com>
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_els.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_els.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index 0a337dab211c..9508661fe825 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c | |||
@@ -864,6 +864,7 @@ lpfc_cmpl_els_flogi(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, | |||
864 | } | 864 | } |
865 | spin_lock_irq(shost->host_lock); | 865 | spin_lock_irq(shost->host_lock); |
866 | vport->fc_flag &= ~FC_VPORT_CVL_RCVD; | 866 | vport->fc_flag &= ~FC_VPORT_CVL_RCVD; |
867 | vport->fc_flag &= ~FC_VPORT_LOGO_RCVD; | ||
867 | spin_unlock_irq(shost->host_lock); | 868 | spin_unlock_irq(shost->host_lock); |
868 | 869 | ||
869 | /* | 870 | /* |
@@ -6053,7 +6054,8 @@ lpfc_cmpl_reg_new_vport(struct lpfc_hba *phba, LPFC_MBOXQ_t *pmb) | |||
6053 | spin_lock_irq(shost->host_lock); | 6054 | spin_lock_irq(shost->host_lock); |
6054 | vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI; | 6055 | vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI; |
6055 | spin_unlock_irq(shost->host_lock); | 6056 | spin_unlock_irq(shost->host_lock); |
6056 | if (vport->port_type == LPFC_PHYSICAL_PORT) | 6057 | if (vport->port_type == LPFC_PHYSICAL_PORT |
6058 | && !(vport->fc_flag & FC_LOGO_RCVD_DID_CHNG)) | ||
6057 | lpfc_initial_flogi(vport); | 6059 | lpfc_initial_flogi(vport); |
6058 | else | 6060 | else |
6059 | lpfc_initial_fdisc(vport); | 6061 | lpfc_initial_fdisc(vport); |
@@ -6289,6 +6291,7 @@ lpfc_cmpl_els_fdisc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, | |||
6289 | } | 6291 | } |
6290 | spin_lock_irq(shost->host_lock); | 6292 | spin_lock_irq(shost->host_lock); |
6291 | vport->fc_flag &= ~FC_VPORT_CVL_RCVD; | 6293 | vport->fc_flag &= ~FC_VPORT_CVL_RCVD; |
6294 | vport->fc_flag &= ~FC_VPORT_LOGO_RCVD; | ||
6292 | vport->fc_flag |= FC_FABRIC; | 6295 | vport->fc_flag |= FC_FABRIC; |
6293 | if (vport->phba->fc_topology == TOPOLOGY_LOOP) | 6296 | if (vport->phba->fc_topology == TOPOLOGY_LOOP) |
6294 | vport->fc_flag |= FC_PUBLIC_LOOP; | 6297 | vport->fc_flag |= FC_PUBLIC_LOOP; |
@@ -6318,6 +6321,8 @@ lpfc_cmpl_els_fdisc(struct lpfc_hba *phba, struct lpfc_iocbq *cmdiocb, | |||
6318 | vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI; | 6321 | vport->fc_flag |= FC_VPORT_NEEDS_REG_VPI; |
6319 | if (phba->sli_rev == LPFC_SLI_REV4) | 6322 | if (phba->sli_rev == LPFC_SLI_REV4) |
6320 | vport->fc_flag |= FC_VPORT_NEEDS_INIT_VPI; | 6323 | vport->fc_flag |= FC_VPORT_NEEDS_INIT_VPI; |
6324 | else | ||
6325 | vport->fc_flag |= FC_LOGO_RCVD_DID_CHNG; | ||
6321 | spin_unlock_irq(shost->host_lock); | 6326 | spin_unlock_irq(shost->host_lock); |
6322 | } | 6327 | } |
6323 | 6328 | ||