aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/lpfc/lpfc_nportdisc.c
diff options
context:
space:
mode:
authorJames Smart <james.smart@emulex.com>2012-05-09 21:19:03 -0400
committerJames Bottomley <JBottomley@Parallels.com>2012-05-17 06:09:55 -0400
commit939723a4a680a7863fc95179b1480c5529f31d88 (patch)
tree247a5737b39aea3e3dfda95d9f59210bda5f6704 /drivers/scsi/lpfc/lpfc_nportdisc.c
parent27aa1b73539f2c7118a68c9baaad590d3a92462f (diff)
[SCSI] lpfc 8.3.31: Correct point-to-point mode discovery errors on LPe16xxx
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/scsi/lpfc/lpfc_nportdisc.c')
-rw-r--r--drivers/scsi/lpfc/lpfc_nportdisc.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/scsi/lpfc/lpfc_nportdisc.c b/drivers/scsi/lpfc/lpfc_nportdisc.c
index 15ca2a9a0cdd..9133a97f045f 100644
--- a/drivers/scsi/lpfc/lpfc_nportdisc.c
+++ b/drivers/scsi/lpfc/lpfc_nportdisc.c
@@ -367,8 +367,10 @@ lpfc_rcv_plogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
367 return 1; 367 return 1;
368 } 368 }
369 369
370 /* Check for Nport to NPort pt2pt protocol */
370 if ((vport->fc_flag & FC_PT2PT) && 371 if ((vport->fc_flag & FC_PT2PT) &&
371 !(vport->fc_flag & FC_PT2PT_PLOGI)) { 372 !(vport->fc_flag & FC_PT2PT_PLOGI)) {
373
372 /* rcv'ed PLOGI decides what our NPortId will be */ 374 /* rcv'ed PLOGI decides what our NPortId will be */
373 vport->fc_myDID = icmd->un.rcvels.parmRo; 375 vport->fc_myDID = icmd->un.rcvels.parmRo;
374 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL); 376 mbox = mempool_alloc(phba->mbox_mem_pool, GFP_KERNEL);
@@ -382,6 +384,13 @@ lpfc_rcv_plogi(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp,
382 mempool_free(mbox, phba->mbox_mem_pool); 384 mempool_free(mbox, phba->mbox_mem_pool);
383 goto out; 385 goto out;
384 } 386 }
387 /*
388 * For SLI4, the VFI/VPI are registered AFTER the
389 * Nport with the higher WWPN sends us a PLOGI with
390 * our assigned NPortId.
391 */
392 if (phba->sli_rev == LPFC_SLI_REV4)
393 lpfc_issue_reg_vfi(vport);
385 394
386 lpfc_can_disctmo(vport); 395 lpfc_can_disctmo(vport);
387 } 396 }