Lines Matching defs:elsiocb
169 struct lpfc_iocbq *elsiocb;
178 elsiocb = lpfc_sli_get_iocbq(phba);
179 if (!elsiocb)
193 elsiocb->cmd_flag |=
198 elsiocb->cmd_flag |=
203 elsiocb->cmd_flag |=
209 elsiocb->cmd_flag &= ~LPFC_FIP_ELS_ID_MASK;
257 elsiocb->num_bdes = 2;
265 lpfc_sli_prep_els_req_rsp(phba, elsiocb, vport, bmp, cmd_size, did,
282 elsiocb->cmd_dmabuf = pcmd;
283 elsiocb->bpl_dmabuf = pbuflist;
284 elsiocb->retry = retry;
285 elsiocb->vport = vport;
286 elsiocb->drvrTimeout = (phba->fc_ratov << 1) + LPFC_DRVR_TIMEOUT;
296 elscmd, did, elsiocb->iotag,
305 elscmd, ndlp->nlp_DID, elsiocb->iotag,
310 return elsiocb;
323 lpfc_sli_release_iocbq(phba, elsiocb);
1296 struct lpfc_iocbq *elsiocb;
1304 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp,
1307 if (!elsiocb)
1310 wqe = &elsiocb->wqe;
1311 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
1312 icmd = &elsiocb->iocb;
1383 elsiocb->cmd_cmpl = lpfc_cmpl_els_flogi;
1389 elsiocb->ndlp = lpfc_nlp_get(ndlp);
1390 if (!elsiocb->ndlp) {
1391 lpfc_els_free_iocb(phba, elsiocb);
1398 rc = lpfc_issue_fabric_iocb(phba, elsiocb);
1401 lpfc_els_free_iocb(phba, elsiocb);
2198 struct lpfc_iocbq *elsiocb;
2228 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, did,
2230 if (!elsiocb)
2233 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
2280 elsiocb->cmd_cmpl = lpfc_cmpl_els_plogi;
2285 elsiocb->ndlp = lpfc_nlp_get(ndlp);
2286 if (!elsiocb->ndlp) {
2287 lpfc_els_free_iocb(phba, elsiocb);
2291 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
2293 lpfc_els_free_iocb(phba, elsiocb);
2474 struct lpfc_iocbq *elsiocb;
2528 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp,
2530 if (!elsiocb)
2533 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
2565 elsiocb->cmd_flag |= LPFC_PRLI_FCP_REQ;
2599 elsiocb->cmd_flag |= LPFC_PRLI_NVME_REQ;
2606 elsiocb->cmd_cmpl = lpfc_cmpl_els_prli;
2611 elsiocb->ndlp = lpfc_nlp_get(ndlp);
2612 if (!elsiocb->ndlp) {
2613 lpfc_els_free_iocb(phba, elsiocb);
2617 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
2619 lpfc_els_free_iocb(phba, elsiocb);
2912 struct lpfc_iocbq *elsiocb;
2917 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp,
2919 if (!elsiocb)
2922 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
2936 elsiocb->cmd_cmpl = lpfc_cmpl_els_adisc;
2940 elsiocb->ndlp = lpfc_nlp_get(ndlp);
2941 if (!elsiocb->ndlp) {
2942 lpfc_els_free_iocb(phba, elsiocb);
2950 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
2952 lpfc_els_free_iocb(phba, elsiocb);
3146 struct lpfc_iocbq *elsiocb;
3159 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp,
3161 if (!elsiocb)
3164 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
3174 elsiocb->cmd_cmpl = lpfc_cmpl_els_logo;
3179 elsiocb->ndlp = lpfc_nlp_get(ndlp);
3180 if (!elsiocb->ndlp) {
3181 lpfc_els_free_iocb(phba, elsiocb);
3189 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
3191 lpfc_els_free_iocb(phba, elsiocb);
3494 struct lpfc_iocbq *elsiocb;
3509 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp,
3511 if (!elsiocb)
3517 lpfc_els_free_iocb(phba, elsiocb);
3524 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
3538 elsiocb->cmd_cmpl = lpfc_cmpl_els_disc_cmd;
3539 elsiocb->ndlp = lpfc_nlp_get(ndlp);
3540 if (!elsiocb->ndlp) {
3541 lpfc_els_free_iocb(phba, elsiocb);
3549 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
3551 lpfc_els_free_iocb(phba, elsiocb);
3583 struct lpfc_iocbq *elsiocb;
3615 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp,
3618 if (!elsiocb)
3621 event = elsiocb->cmd_dmabuf->virt;
3635 elsiocb->cmd_cmpl = lpfc_cmpl_els_cmd;
3636 elsiocb->ndlp = lpfc_nlp_get(ndlp);
3637 if (!elsiocb->ndlp) {
3638 lpfc_els_free_iocb(phba, elsiocb);
3646 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
3648 lpfc_els_free_iocb(phba, elsiocb);
3682 struct lpfc_iocbq *elsiocb;
3700 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp,
3702 if (!elsiocb)
3705 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
3734 elsiocb->cmd_cmpl = lpfc_cmpl_els_cmd;
3735 elsiocb->ndlp = lpfc_nlp_get(ndlp);
3736 if (!elsiocb->ndlp) {
3737 lpfc_els_free_iocb(phba, elsiocb);
3741 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
3747 lpfc_els_free_iocb(phba, elsiocb);
3778 struct lpfc_iocbq *elsiocb;
3798 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp,
3800 if (!elsiocb)
3804 prdf = (struct lpfc_els_rdf_req *)elsiocb->cmd_dmabuf->virt;
3824 elsiocb->cmd_cmpl = lpfc_cmpl_els_disc_cmd;
3825 elsiocb->ndlp = lpfc_nlp_get(ndlp);
3826 if (!elsiocb->ndlp) {
3827 lpfc_els_free_iocb(phba, elsiocb);
3835 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
3837 lpfc_els_free_iocb(phba, elsiocb);
4274 struct lpfc_iocbq *elsiocb;
4301 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp,
4303 if (!elsiocb)
4307 pcmd = (u8 *)elsiocb->cmd_dmabuf->virt;
4329 elsiocb->cmd_cmpl = lpfc_cmpl_els_disc_cmd;
4330 elsiocb->ndlp = lpfc_nlp_get(ndlp);
4331 if (!elsiocb->ndlp) {
4332 lpfc_els_free_iocb(phba, elsiocb);
4339 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
4345 lpfc_els_free_iocb(phba, elsiocb);
5127 * @elsiocb: pointer to lpfc els command iocb data structure.
5152 lpfc_els_free_iocb(struct lpfc_hba *phba, struct lpfc_iocbq *elsiocb)
5157 elsiocb->ndlp = NULL;
5160 if (elsiocb->cmd_dmabuf) {
5161 if (elsiocb->cmd_flag & LPFC_DELAY_MEM_FREE) {
5166 elsiocb->cmd_flag &= ~LPFC_DELAY_MEM_FREE;
5167 buf_ptr = elsiocb->cmd_dmabuf;
5168 elsiocb->cmd_dmabuf = NULL;
5187 buf_ptr1 = elsiocb->cmd_dmabuf;
5189 elsiocb->cmd_dmabuf = NULL;
5193 if (elsiocb->bpl_dmabuf) {
5194 buf_ptr = elsiocb->bpl_dmabuf;
5196 elsiocb->bpl_dmabuf = NULL;
5198 lpfc_sli_release_iocbq(phba, elsiocb);
5513 struct lpfc_iocbq *elsiocb;
5524 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry,
5526 if (!elsiocb) {
5534 wqe = &elsiocb->wqe;
5545 icmd = &elsiocb->iocb;
5552 pcmd = elsiocb->cmd_dmabuf->virt;
5563 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry,
5565 if (!elsiocb)
5569 wqe = &elsiocb->wqe;
5580 icmd = &elsiocb->iocb;
5587 pcmd = (u8 *)elsiocb->cmd_dmabuf->virt;
5590 elsiocb->context_un.mbox = mbox;
5641 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry,
5643 if (!elsiocb)
5647 wqe = &elsiocb->wqe;
5658 icmd = &elsiocb->iocb;
5665 pcmd = (u8 *) elsiocb->cmd_dmabuf->virt;
5679 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry,
5681 if (!elsiocb)
5685 wqe = &elsiocb->wqe;
5696 icmd = &elsiocb->iocb;
5703 pcmd = (u8 *)elsiocb->cmd_dmabuf->virt;
5725 elsiocb->cmd_cmpl = lpfc_cmpl_els_logo_acc;
5727 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
5731 elsiocb->ndlp = lpfc_nlp_get(ndlp);
5732 if (!elsiocb->ndlp) {
5733 lpfc_els_free_iocb(phba, elsiocb);
5737 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
5739 lpfc_els_free_iocb(phba, elsiocb);
5749 rc, elsiocb->iotag, elsiocb->sli4_xritag,
5787 struct lpfc_iocbq *elsiocb;
5792 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp,
5794 if (!elsiocb)
5798 wqe = &elsiocb->wqe;
5804 icmd = &elsiocb->iocb;
5810 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
5817 elsiocb->context_un.mbox = mbox;
5824 rejectError, elsiocb->iotag,
5825 get_job_ulpcontext(phba, elsiocb), ndlp->nlp_DID,
5832 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
5833 elsiocb->ndlp = lpfc_nlp_get(ndlp);
5834 if (!elsiocb->ndlp) {
5835 lpfc_els_free_iocb(phba, elsiocb);
5851 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
5853 lpfc_els_free_iocb(phba, elsiocb);
5882 struct lpfc_iocbq *elsiocb;
5895 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, cmdiocb->retry,
5897 if (!elsiocb)
5901 wqe = &elsiocb->wqe;
5907 icmd = &elsiocb->iocb;
5913 pcmd = elsiocb->cmd_dmabuf->virt;
5934 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
5937 elsiocb->ndlp = lpfc_nlp_get(ndlp);
5938 if (!elsiocb->ndlp) {
5939 lpfc_els_free_iocb(phba, elsiocb);
5943 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
5945 lpfc_els_free_iocb(phba, elsiocb);
5955 rc, elsiocb->iotag, elsiocb->sli4_xritag,
5989 struct lpfc_iocbq *elsiocb;
5996 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp,
5998 if (!elsiocb)
6002 wqe = &elsiocb->wqe;
6006 ulp_context = get_job_ulpcontext(phba, elsiocb);
6011 icmd = &elsiocb->iocb;
6014 ulp_context = elsiocb->iocb.ulpContext;
6023 elsiocb->iotag, ulp_context,
6026 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
6042 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
6043 elsiocb->ndlp = lpfc_nlp_get(ndlp);
6044 if (!elsiocb->ndlp) {
6045 lpfc_els_free_iocb(phba, elsiocb);
6049 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
6051 lpfc_els_free_iocb(phba, elsiocb);
6089 struct lpfc_iocbq *elsiocb;
6120 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp,
6122 if (!elsiocb)
6126 wqe = &elsiocb->wqe;
6129 ulp_context = get_job_ulpcontext(phba, elsiocb);
6133 icmd = &elsiocb->iocb;
6136 ulp_context = elsiocb->iocb.ulpContext;
6145 elsiocb->iotag, ulp_context,
6148 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
6234 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
6235 elsiocb->ndlp = lpfc_nlp_get(ndlp);
6236 if (!elsiocb->ndlp) {
6237 lpfc_els_free_iocb(phba, elsiocb);
6241 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
6243 lpfc_els_free_iocb(phba, elsiocb);
6279 struct lpfc_iocbq *elsiocb;
6290 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp,
6292 if (!elsiocb)
6296 wqe = &elsiocb->wqe;
6299 ulp_context = get_job_ulpcontext(phba, elsiocb);
6303 icmd = &elsiocb->iocb;
6306 ulp_context = elsiocb->iocb.ulpContext;
6314 elsiocb->iotag, ulp_context);
6315 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
6348 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
6349 elsiocb->ndlp = lpfc_nlp_get(ndlp);
6350 if (!elsiocb->ndlp) {
6351 lpfc_els_free_iocb(phba, elsiocb);
6355 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
6357 lpfc_els_free_iocb(phba, elsiocb);
6431 struct lpfc_iocbq *elsiocb;
6447 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp,
6449 if (!elsiocb)
6453 wqe = &elsiocb->wqe;
6456 ulp_context = get_job_ulpcontext(phba, elsiocb);
6460 icmd = &elsiocb->iocb;
6463 ulp_context = elsiocb->iocb.ulpContext;
6471 elsiocb->iotag, ulp_context);
6472 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
6482 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
6483 elsiocb->ndlp = lpfc_nlp_get(ndlp);
6484 if (!elsiocb->ndlp) {
6485 lpfc_els_free_iocb(phba, elsiocb);
6489 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
6491 lpfc_els_free_iocb(phba, elsiocb);
7064 struct lpfc_iocbq *elsiocb;
7082 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize,
7085 if (!elsiocb)
7088 ulp_context = get_job_ulpcontext(phba, elsiocb);
7090 wqe = &elsiocb->wqe;
7097 icmd = &elsiocb->iocb;
7105 elsiocb->iotag, ulp_context,
7108 rdp_res = (struct fc_rdp_res_frame *)elsiocb->cmd_dmabuf->virt;
7109 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
7157 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
7160 bpl = (struct ulp_bde64 *)elsiocb->bpl_dmabuf->virt;
7166 elsiocb->ndlp = lpfc_nlp_get(ndlp);
7167 if (!elsiocb->ndlp) {
7168 lpfc_els_free_iocb(phba, elsiocb);
7172 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
7174 lpfc_els_free_iocb(phba, elsiocb);
7182 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, lpfc_max_els_tries,
7184 if (!elsiocb)
7188 wqe = &elsiocb->wqe;
7196 icmd = &elsiocb->iocb;
7201 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
7208 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
7209 elsiocb->ndlp = lpfc_nlp_get(ndlp);
7210 if (!elsiocb->ndlp) {
7211 lpfc_els_free_iocb(phba, elsiocb);
7215 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
7217 lpfc_els_free_iocb(phba, elsiocb);
7498 struct lpfc_iocbq *elsiocb;
7533 elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize,
7540 if (!elsiocb)
7543 lcb_res = (struct fc_lcb_res_frame *)elsiocb->cmd_dmabuf->virt;
7548 wqe = &elsiocb->wqe;
7553 icmd = &elsiocb->iocb;
7558 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
7565 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
7568 elsiocb->ndlp = lpfc_nlp_get(ndlp);
7569 if (!elsiocb->ndlp) {
7570 lpfc_els_free_iocb(phba, elsiocb);
7574 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
7576 lpfc_els_free_iocb(phba, elsiocb);
7585 elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize,
7589 if (!elsiocb)
7593 wqe = &elsiocb->wqe;
7598 icmd = &elsiocb->iocb;
7603 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
7612 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
7614 elsiocb->ndlp = lpfc_nlp_get(ndlp);
7615 if (!elsiocb->ndlp) {
7616 lpfc_els_free_iocb(phba, elsiocb);
7620 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
7622 lpfc_els_free_iocb(phba, elsiocb);
8642 struct lpfc_iocbq *elsiocb;
8663 elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize,
8670 if (!elsiocb) {
8675 ulp_context = get_job_ulpcontext(phba, elsiocb);
8677 wqe = &elsiocb->wqe;
8682 icmd = &elsiocb->iocb;
8687 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
8703 elsiocb->iotag, ulp_context,
8706 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
8708 elsiocb->ndlp = lpfc_nlp_get(ndlp);
8709 if (!elsiocb->ndlp) {
8710 lpfc_els_free_iocb(phba, elsiocb);
8714 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
8716 lpfc_els_free_iocb(phba, elsiocb);
8818 struct lpfc_iocbq *elsiocb;
8828 elsiocb = lpfc_prep_els_iocb(phba->pport, 0, cmdsize,
8832 if (!elsiocb)
8835 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
8839 ulp_context = get_job_ulpcontext(phba, elsiocb);
8842 wqe = &elsiocb->wqe;
8848 icmd = &elsiocb->iocb;
8867 elsiocb->iotag, ulp_context,
8871 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
8873 elsiocb->ndlp = lpfc_nlp_get(ndlp);
8874 if (!elsiocb->ndlp) {
8875 lpfc_els_free_iocb(phba, elsiocb);
8879 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
8881 lpfc_els_free_iocb(phba, elsiocb);
8915 struct lpfc_iocbq *elsiocb;
8925 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, 0, ndlp, did,
8927 if (!elsiocb)
8930 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
8947 elsiocb->context_un.rrq = rrq;
8948 elsiocb->cmd_cmpl = lpfc_cmpl_els_rrq;
8950 elsiocb->ndlp = lpfc_nlp_get(ndlp);
8951 if (!elsiocb->ndlp)
8954 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
8962 lpfc_els_free_iocb(phba, elsiocb);
9021 struct lpfc_iocbq *elsiocb;
9025 elsiocb = lpfc_prep_els_iocb(vport, 0, cmdsize, oldiocb->retry, ndlp,
9028 if (!elsiocb)
9031 ulp_context = get_job_ulpcontext(phba, elsiocb);
9033 wqe = &elsiocb->wqe;
9040 icmd = &elsiocb->iocb;
9045 pcmd = elsiocb->cmd_dmabuf->virt;
9064 elsiocb->iotag, ulp_context,
9067 elsiocb->cmd_cmpl = lpfc_cmpl_els_rsp;
9069 elsiocb->ndlp = lpfc_nlp_get(ndlp);
9070 if (!elsiocb->ndlp) {
9071 lpfc_els_free_iocb(phba, elsiocb);
9075 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
9077 lpfc_els_free_iocb(phba, elsiocb);
10325 * @elsiocb: pointer to lpfc els command iocb data structure.
10336 struct lpfc_vport *vport, struct lpfc_iocbq *elsiocb)
10346 if (!vport || !elsiocb->cmd_dmabuf)
10350 wcqe_cmpl = &elsiocb->wcqe_cmpl;
10351 payload = elsiocb->cmd_dmabuf->virt;
10355 payload_len = elsiocb->iocb.unsli3.rcvsli3.acc_len;
10356 status = get_job_ulpstatus(phba, elsiocb);
10361 did = get_job_els_rsp64_did(phba, elsiocb);
10365 status, get_job_word4(phba, elsiocb), did);
10412 elsiocb->ndlp = lpfc_nlp_get(ndlp);
10413 if (!elsiocb->ndlp)
10415 elsiocb->vport = vport;
10453 &elsiocb->wqe.xmit_els_rsp);
10482 lpfc_disc_state_machine(vport, ndlp, elsiocb,
10505 lpfc_els_rcv_flogi(vport, elsiocb, ndlp);
10525 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_LOGO);
10542 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_PRLO);
10546 lpfc_els_rcv_lcb(vport, elsiocb, ndlp);
10550 lpfc_els_rcv_rdp(vport, elsiocb, ndlp);
10554 lpfc_els_rcv_rscn(vport, elsiocb, ndlp);
10571 lpfc_disc_state_machine(vport, ndlp, elsiocb,
10585 lpfc_disc_state_machine(vport, ndlp, elsiocb,
10594 lpfc_els_rcv_farpr(vport, elsiocb, ndlp);
10602 lpfc_els_rcv_farp(vport, elsiocb, ndlp);
10610 lpfc_els_rcv_fan(vport, elsiocb, ndlp);
10625 lpfc_disc_state_machine(vport, ndlp, elsiocb, NLP_EVT_RCV_PRLI);
10633 lpfc_els_rcv_lirr(vport, elsiocb, ndlp);
10644 lpfc_els_rcv_rls(vport, elsiocb, ndlp);
10655 lpfc_els_rcv_rpl(vport, elsiocb, ndlp);
10666 lpfc_els_rcv_rnid(vport, elsiocb, ndlp);
10676 lpfc_els_rcv_rtv(vport, elsiocb, ndlp);
10687 lpfc_els_rcv_rrq(vport, elsiocb, ndlp);
10698 lpfc_els_rcv_echo(vport, elsiocb, ndlp);
10719 lpfc_els_rcv_edc(vport, elsiocb, ndlp);
10733 lpfc_els_rcv_rdf(vport, elsiocb, ndlp);
10760 lpfc_els_rsp_reject(vport, stat.un.lsRjtError, elsiocb, ndlp,
10768 /* Release the reference on this elsiocb, not the ndlp. */
10769 lpfc_nlp_put(elsiocb->ndlp);
10770 elsiocb->ndlp = NULL;
10799 cmd, status, get_job_word4(phba, elsiocb), did);
10808 * @elsiocb: pointer to lpfc els iocb data structure.
10818 struct lpfc_iocbq *elsiocb)
10820 struct lpfc_vport *vport = elsiocb->vport;
10824 struct lpfc_dmabuf *bdeBuf1 = elsiocb->cmd_dmabuf;
10825 struct lpfc_dmabuf *bdeBuf2 = elsiocb->bpl_dmabuf;
10828 elsiocb->cmd_dmabuf = NULL;
10829 elsiocb->rsp_dmabuf = NULL;
10830 elsiocb->bpl_dmabuf = NULL;
10832 wcqe_cmpl = &elsiocb->wcqe_cmpl;
10833 ulp_command = get_job_cmnd(phba, elsiocb);
10834 status = get_job_ulpstatus(phba, elsiocb);
10835 parameter = get_job_word4(phba, elsiocb);
10839 bde_count = elsiocb->iocb.ulpBdeCount;
10854 icmd = &elsiocb->iocb;
10874 elsiocb->cmd_dmabuf = bdeBuf1;
10876 elsiocb->bpl_dmabuf = bdeBuf2;
10878 icmd = &elsiocb->iocb;
10881 elsiocb->cmd_dmabuf = lpfc_sli_ringpostbuf_get(phba, pring,
10886 elsiocb->bpl_dmabuf = lpfc_sli_ringpostbuf_get(phba,
10892 lpfc_els_unsol_buffer(phba, pring, vport, elsiocb);
10897 if (elsiocb->cmd_dmabuf) {
10898 lpfc_in_buf_free(phba, elsiocb->cmd_dmabuf);
10899 elsiocb->cmd_dmabuf = NULL;
10902 if (elsiocb->bpl_dmabuf) {
10903 lpfc_in_buf_free(phba, elsiocb->bpl_dmabuf);
10904 elsiocb->bpl_dmabuf = NULL;
11446 struct lpfc_iocbq *elsiocb;
11456 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, retry, ndlp, did,
11458 if (!elsiocb) {
11466 wqe = &elsiocb->wqe;
11470 icmd = &elsiocb->iocb;
11477 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
11503 elsiocb->cmd_cmpl = lpfc_cmpl_els_fdisc;
11509 elsiocb->ndlp = lpfc_nlp_get(ndlp);
11510 if (!elsiocb->ndlp)
11513 rc = lpfc_issue_fabric_iocb(phba, elsiocb);
11523 lpfc_els_free_iocb(phba, elsiocb);
11624 struct lpfc_iocbq *elsiocb;
11629 elsiocb = lpfc_prep_els_iocb(vport, 1, cmdsize, 0, ndlp, ndlp->nlp_DID,
11631 if (!elsiocb)
11634 pcmd = (uint8_t *)elsiocb->cmd_dmabuf->virt;
11647 elsiocb->cmd_cmpl = lpfc_cmpl_els_npiv_logo;
11651 elsiocb->ndlp = lpfc_nlp_get(ndlp);
11652 if (!elsiocb->ndlp) {
11653 lpfc_els_free_iocb(phba, elsiocb);
11657 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 0);
11659 lpfc_els_free_iocb(phba, elsiocb);
12299 struct lpfc_iocbq *elsiocb;
12307 elsiocb = lpfc_prep_els_iocb(vport, 1, LPFC_QFPA_SIZE, 2, ndlp,
12309 if (!elsiocb)
12312 pcmd = (u8 *)elsiocb->cmd_dmabuf->virt;
12317 elsiocb->cmd_cmpl = lpfc_cmpl_els_qfpa;
12319 elsiocb->ndlp = lpfc_nlp_get(ndlp);
12320 if (!elsiocb->ndlp) {
12321 lpfc_els_free_iocb(vport->phba, elsiocb);
12325 ret = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, elsiocb, 2);
12327 lpfc_els_free_iocb(phba, elsiocb);
12341 struct lpfc_iocbq *elsiocb;
12355 elsiocb = lpfc_prep_els_iocb(vport, 1, LPFC_UVEM_SIZE, 2,
12357 if (!elsiocb)
12366 elsiocb->vmid_tag.vmid_context = vmid_context;
12367 pcmd = (u8 *)elsiocb->cmd_dmabuf->virt;
12401 elsiocb->cmd_cmpl = lpfc_cmpl_els_uvem;
12403 elsiocb->ndlp = lpfc_nlp_get(ndlp);
12404 if (!elsiocb->ndlp) {
12405 lpfc_els_free_iocb(vport->phba, elsiocb);
12409 ret = lpfc_sli_issue_iocb(vport->phba, LPFC_ELS_RING, elsiocb, 0);
12411 lpfc_els_free_iocb(vport->phba, elsiocb);