Lines Matching defs: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;
1236 * @piocbq: Pointer to the iocbq.
1307 * @piocbq: Pointer to the iocbq.
1344 struct lpfc_iocbq * iocbq = NULL;
1348 iocbq = __lpfc_sli_get_iocbq(phba);
1350 return iocbq;
1356 * @iocbq: Pointer to driver iocb object.
1373 __lpfc_sli_release_iocbq_s4(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
1379 if (iocbq->sli4_xritag == NO_XRI)
1382 sglq = __lpfc_clear_active_sglq(phba, iocbq->sli4_lxritag);
1386 if (iocbq->cmd_flag & LPFC_IO_NVMET) {
1398 if ((iocbq->cmd_flag & LPFC_EXCHANGE_BUSY) &&
1432 memset_startat(iocbq, 0, wqe);
1433 iocbq->sli4_lxritag = NO_XRI;
1434 iocbq->sli4_xritag = NO_XRI;
1435 iocbq->cmd_flag &= ~(LPFC_IO_NVME | LPFC_IO_NVMET | LPFC_IO_CMF |
1437 list_add_tail(&iocbq->list, &phba->lpfc_iocb_list);
1444 * @iocbq: Pointer to driver iocb object.
1453 __lpfc_sli_release_iocbq_s3(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
1459 memset_startat(iocbq, 0, iocb);
1460 iocbq->sli4_xritag = NO_XRI;
1461 list_add_tail(&iocbq->list, &phba->lpfc_iocb_list);
1467 * @iocbq: Pointer to driver iocb object.
1475 __lpfc_sli_release_iocbq(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
1479 phba->__lpfc_sli_release_iocbq(phba, iocbq);
1486 * @iocbq: Pointer to driver iocb object.
1492 lpfc_sli_release_iocbq(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
1500 __lpfc_sli_release_iocbq(phba, iocbq);
2101 * @iocbq: Pointer to driver iocb object.
2111 lpfc_sli_next_iotag(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq)
2123 psli->iocbq_lookup[iotag] = iocbq;
2125 iocbq->iotag = iotag;
2142 psli->iocbq_lookup[iotag] = iocbq;
2144 iocbq->iotag = iotag;
2157 psli->iocbq_lookup[iotag] = iocbq;
2159 iocbq->iotag = iotag;
3202 * @piocb: pointer to the iocbq struct representing the sequence starting
3340 * @saveq: Pointer to the iocbq struct representing the sequence starting frame.
3456 struct lpfc_iocbq *iocbq;
3525 list_for_each_entry(iocbq, &saveq->list, list) {
3526 irsp = &iocbq->iocb;
3528 iocbq->cmd_dmabuf = lpfc_sli_get_buff(phba,
3531 if (!iocbq->cmd_dmabuf)
3541 iocbq->bpl_dmabuf = lpfc_sli_get_buff(phba,
3544 if (!iocbq->bpl_dmabuf)
3575 list_for_each_entry(iocbq, &pring->iocb_continue_saveq, clist) {
3576 if (iocbq->iocb.unsli3.rcvsli3.ox_id ==
3578 list_add_tail(&saveq->list, &iocbq->list);
3588 list_del_init(&iocbq->clist);
3589 saveq = iocbq;
8860 /* We allocate an iocbq for every receive context SGL.
8886 /* Each lpfc_io_buf job structure has an iocbq element.
11393 * @iocbq: Pointer to iocb object.
11405 struct lpfc_iocbq *iocbq)
11412 vpi = iocbq->iocb.un.asyncstat.sub_ctxt_tag;
11413 rpi = iocbq->iocb.ulpContext;
11418 vpi, rpi, iocbq->iocb.ulpStatus);
11427 if (iocbq->iocb.ulpStatus == IOSTAT_LOCAL_REJECT)
11435 vpi, rpi, iocbq->iocb.ulpStatus,
11436 iocbq->iocb.ulpContext);
11486 * @iocbq: Pointer to iocb object.
11497 struct lpfc_sli_ring * pring, struct lpfc_iocbq * iocbq)
11505 icmd = &iocbq->iocb;
11534 lpfc_sli_abts_err_handler(phba, iocbq);
12554 * @iocbq: Pointer to iocb object.
12566 lpfc_sli_validate_fcp_iocb_for_abort(struct lpfc_iocbq *iocbq,
12572 if (!iocbq || iocbq->vport != vport)
12578 ulp_command = get_job_cmnd(vport->phba, iocbq);
12579 if (!(iocbq->cmd_flag & LPFC_IO_FCP) ||
12580 !(iocbq->cmd_flag & LPFC_IO_ON_TXCMPLQ) ||
12581 (iocbq->cmd_flag & LPFC_DRIVER_ABORTED) ||
12592 * @iocbq: Pointer to driver iocb object.
12615 lpfc_sli_validate_fcp_iocb(struct lpfc_iocbq *iocbq, struct lpfc_vport *vport,
12622 lpfc_cmd = container_of(iocbq, struct lpfc_io_buf, cur_iocbq);
12675 struct lpfc_iocbq *iocbq;
12682 iocbq = phba->sli.iocbq_lookup[i];
12684 if (!iocbq || iocbq->vport != vport)
12686 if (!(iocbq->cmd_flag & LPFC_IO_FCP) ||
12687 !(iocbq->cmd_flag & LPFC_IO_ON_TXCMPLQ))
12691 ulp_command = get_job_cmnd(phba, iocbq);
12699 if (lpfc_sli_validate_fcp_iocb(iocbq, vport, tgt_id, lun_id,
12768 struct lpfc_iocbq *iocbq;
12778 iocbq = phba->sli.iocbq_lookup[i];
12780 if (lpfc_sli_validate_fcp_iocb_for_abort(iocbq, vport))
12783 if (lpfc_sli_validate_fcp_iocb(iocbq, vport, tgt_id, lun_id,
12791 pring = lpfc_sli4_calc_ring(phba, iocbq);
12793 ret_val = lpfc_sli_issue_abort_iotag(phba, pring, iocbq,
12837 struct lpfc_iocbq *iocbq;
12854 iocbq = phba->sli.iocbq_lookup[i];
12856 if (lpfc_sli_validate_fcp_iocb_for_abort(iocbq, vport))
12859 if (lpfc_sli_validate_fcp_iocb(iocbq, vport, tgt_id, lun_id,
12864 lpfc_cmd = container_of(iocbq, struct lpfc_io_buf, cur_iocbq);
12874 phba->sli4_hba.hdwq[iocbq->hba_wqidx].io_wq->pring;
12884 * If the iocbq is already being aborted, don't take a second
12887 if ((iocbq->cmd_flag & LPFC_DRIVER_ABORTED) ||
12888 !(iocbq->cmd_flag & LPFC_IO_ON_TXCMPLQ)) {
12906 ulp_context = iocbq->sli4_xritag;
12909 iotag = iocbq->iocb.ulpIoTag;
12911 ndlp = iocbq->ndlp;
12914 ulp_context = iocbq->iocb.ulpContext;
12928 iocbq->iocb.ulpClass, cqid,
12934 abtsiocbq->hba_wqidx = iocbq->hba_wqidx;
12935 if (iocbq->cmd_flag & LPFC_IO_FCP)
12937 if (iocbq->cmd_flag & LPFC_IO_FOF)
12947 iocbq->cmd_flag |= LPFC_DRIVER_ABORTED;
13002 * just free the iocbq.
13076 * function shall free the iocbq structure. If more clean up is
13080 * free the iocbq structure (if cmd_cmpl == NULL) or execute the
13126 * If the caller has provided a response iocbq buffer, then rsp_iocb
14160 * lpfc_sli4_els_preprocess_rspiocbq - Get response iocbq from els wcqe
17901 * that is in the iocbq structure. The xritag is assigned during iocbq
18849 * @cmd_iocbq: pointer to the command iocbq structure.
18850 * @rsp_iocbq: pointer to the response iocbq structure.
19140 * a list of iocbq structures to describe the sequence. This iocbq list will be
19142 * returns a pointer to the first iocbq in the list. If the function is unable
19143 * to allocate an iocbq then it throw out the received frames that were not
19144 * able to be described and return a pointer to the first iocbq. If unable to
19152 struct lpfc_iocbq *first_iocbq, *iocbq;
19164 /* Get an iocbq struct to fill in. */
19203 iocbq = first_iocbq;
19209 if (!iocbq) {
19213 if (!iocbq->bpl_dmabuf) {
19214 iocbq->bpl_dmabuf = d_buf;
19215 iocbq->wcqe_cmpl.word3++;
19220 iocbq->unsol_rcv_len = len;
19221 iocbq->wcqe_cmpl.total_data_placed += len;
19224 iocbq = lpfc_sli_get_iocbq(vport->phba);
19225 if (!iocbq) {
19240 iocbq->cmd_dmabuf = d_buf;
19241 iocbq->bpl_dmabuf = NULL;
19242 iocbq->wcqe_cmpl.word3 = 1;
19245 iocbq->wqe.xmit_els_rsp.bde.tus.f.bdeSize =
19248 iocbq->wqe.xmit_els_rsp.bde.tus.f.bdeSize =
19252 iocbq->wcqe_cmpl.total_data_placed = tot_len;
19253 bf_set(wqe_els_did, &iocbq->wqe.xmit_els_rsp.wqe_dest,
19255 list_add_tail(&iocbq->list, &first_iocbq->list);
19270 struct lpfc_iocbq *iocbq, *curr_iocb, *next_iocb;
19274 iocbq = lpfc_prep_seq(vport, seq_dmabuf);
19275 if (!iocbq) {
19285 iocbq, fc_hdr->fh_r_ctl,
19297 &iocbq->list, list) {
19301 lpfc_sli_release_iocbq(phba, iocbq);
19323 struct lpfc_iocbq *iocbq = NULL;
19334 iocbq = lpfc_sli_get_iocbq(phba);
19335 if (!iocbq) {
19359 iocbq->cmd_dmabuf = pcmd;
19360 iocbq->vport = vport;
19361 iocbq->cmd_flag &= ~LPFC_FIP_ELS_ID_MASK;
19362 iocbq->cmd_flag |= LPFC_USE_FCPWQIDX;
19363 iocbq->num_bdes = 0;
19365 pwqe = &iocbq->wqe;
19392 bf_set(wqe_xri_tag, &pwqe->generic.wqe_com, iocbq->sli4_xritag);
19393 bf_set(wqe_reqtag, &pwqe->generic.wqe_com, iocbq->iotag);
19395 pwqe->generic.wqe_com.abort_tag = iocbq->iotag;
19397 iocbq->cmd_cmpl = lpfc_sli4_mds_loopback_cmpl;
19399 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocbq, 0);
19412 if (iocbq)
19413 lpfc_sli_release_iocbq(phba, iocbq);