diff options
Diffstat (limited to 'drivers/scsi/lpfc/lpfc_els.c')
-rw-r--r-- | drivers/scsi/lpfc/lpfc_els.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/drivers/scsi/lpfc/lpfc_els.c b/drivers/scsi/lpfc/lpfc_els.c index 6bdeb14878a2..2aabaf9c4053 100644 --- a/drivers/scsi/lpfc/lpfc_els.c +++ b/drivers/scsi/lpfc/lpfc_els.c | |||
@@ -6108,9 +6108,17 @@ lpfc_issue_els_fdisc(struct lpfc_vport *vport, struct lpfc_nodelist *ndlp, | |||
6108 | icmd->un.elsreq64.myID = 0; | 6108 | icmd->un.elsreq64.myID = 0; |
6109 | icmd->un.elsreq64.fl = 1; | 6109 | icmd->un.elsreq64.fl = 1; |
6110 | 6110 | ||
6111 | /* For FDISC, Let FDISC rsp set the NPortID for this VPI */ | 6111 | if (phba->sli_rev == LPFC_SLI_REV4) { |
6112 | icmd->ulpCt_h = 1; | 6112 | /* FDISC needs to be 1 for WQE VPI */ |
6113 | icmd->ulpCt_l = 0; | 6113 | elsiocb->iocb.ulpCt_h = (SLI4_CT_VPI >> 1) & 1; |
6114 | elsiocb->iocb.ulpCt_l = SLI4_CT_VPI & 1 ; | ||
6115 | /* Set the ulpContext to the vpi */ | ||
6116 | elsiocb->iocb.ulpContext = vport->vpi + phba->vpi_base; | ||
6117 | } else { | ||
6118 | /* For FDISC, Let FDISC rsp set the NPortID for this VPI */ | ||
6119 | icmd->ulpCt_h = 1; | ||
6120 | icmd->ulpCt_l = 0; | ||
6121 | } | ||
6114 | 6122 | ||
6115 | pcmd = (uint8_t *) (((struct lpfc_dmabuf *) elsiocb->context2)->virt); | 6123 | pcmd = (uint8_t *) (((struct lpfc_dmabuf *) elsiocb->context2)->virt); |
6116 | *((uint32_t *) (pcmd)) = ELS_CMD_FDISC; | 6124 | *((uint32_t *) (pcmd)) = ELS_CMD_FDISC; |