Lines Matching refs:iocbq

919 	struct lpfc_iocbq * iocbq = NULL;
923 list_remove_head(lpfc_iocb_list, iocbq, struct lpfc_iocbq, list);
924 if (iocbq)
928 return iocbq;
1238 * @piocbq: Pointer to the iocbq.
1309 * @piocbq: Pointer to the iocbq.
1346 struct lpfc_iocbq * iocbq = NULL;
1350 iocbq = __lpfc_sli_get_iocbq(phba);
1352 return iocbq;
1358 * @iocbq: Pointer to driver iocb object.
1375 __lpfc_sli_release_iocbq_s4(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
1381 if (iocbq->sli4_xritag == NO_XRI)
1384 sglq = __lpfc_clear_active_sglq(phba, iocbq->sli4_lxritag);
1388 if (iocbq->cmd_flag & LPFC_IO_NVMET) {
1400 if ((iocbq->cmd_flag & LPFC_EXCHANGE_BUSY) &&
1434 memset_startat(iocbq, 0, wqe);
1435 iocbq->sli4_lxritag = NO_XRI;
1436 iocbq->sli4_xritag = NO_XRI;
1437 iocbq->cmd_flag &= ~(LPFC_IO_NVME | LPFC_IO_NVMET | LPFC_IO_CMF |
1439 list_add_tail(&iocbq->list, &phba->lpfc_iocb_list);
1446 * @iocbq: Pointer to driver iocb object.
1455 __lpfc_sli_release_iocbq_s3(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
1461 memset_startat(iocbq, 0, iocb);
1462 iocbq->sli4_xritag = NO_XRI;
1463 list_add_tail(&iocbq->list, &phba->lpfc_iocb_list);
1469 * @iocbq: Pointer to driver iocb object.
1477 __lpfc_sli_release_iocbq(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
1481 phba->__lpfc_sli_release_iocbq(phba, iocbq);
1488 * @iocbq: Pointer to driver iocb object.
1494 lpfc_sli_release_iocbq(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
1502 __lpfc_sli_release_iocbq(phba, iocbq);
2103 * @iocbq: Pointer to driver iocb object.
2113 lpfc_sli_next_iotag(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
2125 psli->iocbq_lookup[iotag] = iocbq;
2127 iocbq->iotag = iotag;
2144 psli->iocbq_lookup[iotag] = iocbq;
2146 iocbq->iotag = iotag;
2159 psli->iocbq_lookup[iotag] = iocbq;
2161 iocbq->iotag = iotag;
3206 * @piocb: pointer to the iocbq struct representing the sequence starting
3344 * @saveq: Pointer to the iocbq struct representing the sequence starting frame.
3460 struct lpfc_iocbq *iocbq;
3529 list_for_each_entry(iocbq, &saveq->list, list) {
3530 irsp = &iocbq->iocb;
3532 iocbq->cmd_dmabuf = lpfc_sli_get_buff(phba,
3535 if (!iocbq->cmd_dmabuf)
3545 iocbq->bpl_dmabuf = lpfc_sli_get_buff(phba,
3548 if (!iocbq->bpl_dmabuf)
3579 list_for_each_entry(iocbq, &pring->iocb_continue_saveq, clist) {
3580 if (iocbq->iocb.unsli3.rcvsli3.ox_id ==
3582 list_add_tail(&saveq->list, &iocbq->list);
3592 list_del_init(&iocbq->clist);
3593 saveq = iocbq;
8873 /* We allocate an iocbq for every receive context SGL.
8899 /* Each lpfc_io_buf job structure has an iocbq element.
11409 * @iocbq: Pointer to iocb object.
11421 struct lpfc_iocbq *iocbq)
11428 vpi = iocbq->iocb.un.asyncstat.sub_ctxt_tag;
11429 rpi = iocbq->iocb.ulpContext;
11434 vpi, rpi, iocbq->iocb.ulpStatus);
11443 if (iocbq->iocb.ulpStatus == IOSTAT_LOCAL_REJECT)
11451 vpi, rpi, iocbq->iocb.ulpStatus,
11452 iocbq->iocb.ulpContext);
11502 * @iocbq: Pointer to iocb object.
11513 struct lpfc_sli_ring * pring, struct lpfc_iocbq * iocbq)
11521 icmd = &iocbq->iocb;
11550 lpfc_sli_abts_err_handler(phba, iocbq);
12568 * @iocbq: Pointer to iocb object.
12580 lpfc_sli_validate_fcp_iocb_for_abort(struct lpfc_iocbq *iocbq,
12586 if (!iocbq || iocbq->vport != vport)
12592 ulp_command = get_job_cmnd(vport->phba, iocbq);
12593 if (!(iocbq->cmd_flag & LPFC_IO_FCP) ||
12594 !(iocbq->cmd_flag & LPFC_IO_ON_TXCMPLQ) ||
12595 (iocbq->cmd_flag & LPFC_DRIVER_ABORTED) ||
12606 * @iocbq: Pointer to driver iocb object.
12629 lpfc_sli_validate_fcp_iocb(struct lpfc_iocbq *iocbq, struct lpfc_vport *vport,
12636 lpfc_cmd = container_of(iocbq, struct lpfc_io_buf, cur_iocbq);
12689 struct lpfc_iocbq *iocbq;
12696 iocbq = phba->sli.iocbq_lookup[i];
12698 if (!iocbq || iocbq->vport != vport)
12700 if (!(iocbq->cmd_flag & LPFC_IO_FCP) ||
12701 !(iocbq->cmd_flag & LPFC_IO_ON_TXCMPLQ))
12705 ulp_command = get_job_cmnd(phba, iocbq);
12713 if (lpfc_sli_validate_fcp_iocb(iocbq, vport, tgt_id, lun_id,
12782 struct lpfc_iocbq *iocbq;
12792 iocbq = phba->sli.iocbq_lookup[i];
12794 if (lpfc_sli_validate_fcp_iocb_for_abort(iocbq, vport))
12797 if (lpfc_sli_validate_fcp_iocb(iocbq, vport, tgt_id, lun_id,
12805 pring = lpfc_sli4_calc_ring(phba, iocbq);
12807 ret_val = lpfc_sli_issue_abort_iotag(phba, pring, iocbq,
12851 struct lpfc_iocbq *iocbq;
12866 iocbq = phba->sli.iocbq_lookup[i];
12868 if (lpfc_sli_validate_fcp_iocb_for_abort(iocbq, vport))
12871 if (lpfc_sli_validate_fcp_iocb(iocbq, vport, tgt_id, lun_id,
12876 lpfc_cmd = container_of(iocbq, struct lpfc_io_buf, cur_iocbq);
12886 phba->sli4_hba.hdwq[iocbq->hba_wqidx].io_wq->pring;
12896 * If the iocbq is already being aborted, don't take a second
12899 if ((iocbq->cmd_flag & LPFC_DRIVER_ABORTED) ||
12900 !(iocbq->cmd_flag & LPFC_IO_ON_TXCMPLQ)) {
12918 ulp_context = iocbq->sli4_xritag;
12921 iotag = iocbq->iocb.ulpIoTag;
12923 ndlp = iocbq->ndlp;
12926 ulp_context = iocbq->iocb.ulpContext;
12940 iocbq->iocb.ulpClass, cqid,
12946 abtsiocbq->hba_wqidx = iocbq->hba_wqidx;
12947 if (iocbq->cmd_flag & LPFC_IO_FCP)
12949 if (iocbq->cmd_flag & LPFC_IO_FOF)
12959 iocbq->cmd_flag |= LPFC_DRIVER_ABORTED;
13014 * just free the iocbq.
13088 * function shall free the iocbq structure. If more clean up is
13092 * free the iocbq structure (if cmd_cmpl == NULL) or execute the
13138 * If the caller has provided a response iocbq buffer, then rsp_iocb
14159 * lpfc_sli4_els_preprocess_rspiocbq - Get response iocbq from els wcqe
17896 * that is in the iocbq structure. The xritag is assigned during iocbq
18844 * @cmd_iocbq: pointer to the command iocbq structure.
18845 * @rsp_iocbq: pointer to the response iocbq structure.
19145 * a list of iocbq structures to describe the sequence. This iocbq list will be
19147 * returns a pointer to the first iocbq in the list. If the function is unable
19148 * to allocate an iocbq then it throw out the received frames that were not
19149 * able to be described and return a pointer to the first iocbq. If unable to
19157 struct lpfc_iocbq *first_iocbq, *iocbq;
19169 /* Get an iocbq struct to fill in. */
19208 iocbq = first_iocbq;
19214 if (!iocbq) {
19218 if (!iocbq->bpl_dmabuf) {
19219 iocbq->bpl_dmabuf = d_buf;
19220 iocbq->wcqe_cmpl.word3++;
19225 iocbq->unsol_rcv_len = len;
19226 iocbq->wcqe_cmpl.total_data_placed += len;
19229 iocbq = lpfc_sli_get_iocbq(vport->phba);
19230 if (!iocbq) {
19245 iocbq->cmd_dmabuf = d_buf;
19246 iocbq->bpl_dmabuf = NULL;
19247 iocbq->wcqe_cmpl.word3 = 1;
19250 iocbq->wqe.xmit_els_rsp.bde.tus.f.bdeSize =
19253 iocbq->wqe.xmit_els_rsp.bde.tus.f.bdeSize =
19257 iocbq->wcqe_cmpl.total_data_placed = tot_len;
19258 bf_set(wqe_els_did, &iocbq->wqe.xmit_els_rsp.wqe_dest,
19260 list_add_tail(&iocbq->list, &first_iocbq->list);
19275 struct lpfc_iocbq *iocbq, *curr_iocb, *next_iocb;
19279 iocbq = lpfc_prep_seq(vport, seq_dmabuf);
19280 if (!iocbq) {
19290 iocbq, fc_hdr->fh_r_ctl,
19302 &iocbq->list, list) {
19306 lpfc_sli_release_iocbq(phba, iocbq);
19328 struct lpfc_iocbq *iocbq = NULL;
19339 iocbq = lpfc_sli_get_iocbq(phba);
19340 if (!iocbq) {
19364 iocbq->cmd_dmabuf = pcmd;
19365 iocbq->vport = vport;
19366 iocbq->cmd_flag &= ~LPFC_FIP_ELS_ID_MASK;
19367 iocbq->cmd_flag |= LPFC_USE_FCPWQIDX;
19368 iocbq->num_bdes = 0;
19370 pwqe = &iocbq->wqe;
19397 bf_set(wqe_xri_tag, &pwqe->generic.wqe_com, iocbq->sli4_xritag);
19398 bf_set(wqe_reqtag, &pwqe->generic.wqe_com, iocbq->iotag);
19400 pwqe->generic.wqe_com.abort_tag = iocbq->iotag;
19402 iocbq->cmd_cmpl = lpfc_sli4_mds_loopback_cmpl;
19404 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocbq, 0);
19417 if (iocbq)
19418 lpfc_sli_release_iocbq(phba, iocbq);
19817 * @iocbq: data to load as mbox ctx_u information
19825 struct lpfc_iocbq *iocbq)
19854 mboxq->ctx_u.save_iocb = iocbq;