Lines Matching refs:iocbq
919 struct lpfc_iocbq * iocbq = NULL; in __lpfc_sli_get_iocbq() local
923 list_remove_head(lpfc_iocb_list, iocbq, struct lpfc_iocbq, list); in __lpfc_sli_get_iocbq()
924 if (iocbq) in __lpfc_sli_get_iocbq()
928 return iocbq; in __lpfc_sli_get_iocbq()
1344 struct lpfc_iocbq * iocbq = NULL; in lpfc_sli_get_iocbq() local
1348 iocbq = __lpfc_sli_get_iocbq(phba); in lpfc_sli_get_iocbq()
1350 return iocbq; in lpfc_sli_get_iocbq()
1373 __lpfc_sli_release_iocbq_s4(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) in __lpfc_sli_release_iocbq_s4() argument
1380 if (iocbq->sli4_xritag == NO_XRI) in __lpfc_sli_release_iocbq_s4()
1383 sglq = __lpfc_clear_active_sglq(phba, iocbq->sli4_lxritag); in __lpfc_sli_release_iocbq_s4()
1387 if (iocbq->cmd_flag & LPFC_IO_NVMET) { in __lpfc_sli_release_iocbq_s4()
1399 if ((iocbq->cmd_flag & LPFC_EXCHANGE_BUSY) && in __lpfc_sli_release_iocbq_s4()
1433 memset((char *)iocbq + start_clean, 0, sizeof(*iocbq) - start_clean); in __lpfc_sli_release_iocbq_s4()
1434 iocbq->sli4_lxritag = NO_XRI; in __lpfc_sli_release_iocbq_s4()
1435 iocbq->sli4_xritag = NO_XRI; in __lpfc_sli_release_iocbq_s4()
1436 iocbq->cmd_flag &= ~(LPFC_IO_NVME | LPFC_IO_NVMET | LPFC_IO_CMF | in __lpfc_sli_release_iocbq_s4()
1438 list_add_tail(&iocbq->list, &phba->lpfc_iocb_list); in __lpfc_sli_release_iocbq_s4()
1454 __lpfc_sli_release_iocbq_s3(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) in __lpfc_sli_release_iocbq_s3() argument
1461 memset((char*)iocbq + start_clean, 0, sizeof(*iocbq) - start_clean); in __lpfc_sli_release_iocbq_s3()
1462 iocbq->sli4_xritag = NO_XRI; in __lpfc_sli_release_iocbq_s3()
1463 list_add_tail(&iocbq->list, &phba->lpfc_iocb_list); in __lpfc_sli_release_iocbq_s3()
1477 __lpfc_sli_release_iocbq(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) in __lpfc_sli_release_iocbq() argument
1481 phba->__lpfc_sli_release_iocbq(phba, iocbq); in __lpfc_sli_release_iocbq()
1494 lpfc_sli_release_iocbq(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) in lpfc_sli_release_iocbq() argument
1502 __lpfc_sli_release_iocbq(phba, iocbq); in lpfc_sli_release_iocbq()
2095 lpfc_sli_next_iotag(struct lpfc_hba *phba, struct lpfc_iocbq *iocbq) in lpfc_sli_next_iotag() argument
2107 psli->iocbq_lookup[iotag] = iocbq; in lpfc_sli_next_iotag()
2109 iocbq->iotag = iotag; in lpfc_sli_next_iotag()
2126 psli->iocbq_lookup[iotag] = iocbq; in lpfc_sli_next_iotag()
2128 iocbq->iotag = iotag; in lpfc_sli_next_iotag()
2141 psli->iocbq_lookup[iotag] = iocbq; in lpfc_sli_next_iotag()
2143 iocbq->iotag = iotag; in lpfc_sli_next_iotag()
3440 struct lpfc_iocbq *iocbq; in lpfc_sli_process_unsol_iocb() local
3509 list_for_each_entry(iocbq, &saveq->list, list) { in lpfc_sli_process_unsol_iocb()
3510 irsp = &iocbq->iocb; in lpfc_sli_process_unsol_iocb()
3512 iocbq->cmd_dmabuf = lpfc_sli_get_buff(phba, in lpfc_sli_process_unsol_iocb()
3515 if (!iocbq->cmd_dmabuf) in lpfc_sli_process_unsol_iocb()
3525 iocbq->bpl_dmabuf = lpfc_sli_get_buff(phba, in lpfc_sli_process_unsol_iocb()
3528 if (!iocbq->bpl_dmabuf) in lpfc_sli_process_unsol_iocb()
3559 list_for_each_entry(iocbq, &pring->iocb_continue_saveq, clist) { in lpfc_sli_process_unsol_iocb()
3560 if (iocbq->iocb.unsli3.rcvsli3.ox_id == in lpfc_sli_process_unsol_iocb()
3562 list_add_tail(&saveq->list, &iocbq->list); in lpfc_sli_process_unsol_iocb()
3572 list_del_init(&iocbq->clist); in lpfc_sli_process_unsol_iocb()
3573 saveq = iocbq; in lpfc_sli_process_unsol_iocb()
11391 struct lpfc_iocbq *iocbq) in lpfc_sli_abts_err_handler() argument
11398 vpi = iocbq->iocb.un.asyncstat.sub_ctxt_tag; in lpfc_sli_abts_err_handler()
11399 rpi = iocbq->iocb.ulpContext; in lpfc_sli_abts_err_handler()
11404 vpi, rpi, iocbq->iocb.ulpStatus); in lpfc_sli_abts_err_handler()
11413 if (iocbq->iocb.ulpStatus == IOSTAT_LOCAL_REJECT) in lpfc_sli_abts_err_handler()
11421 vpi, rpi, iocbq->iocb.ulpStatus, in lpfc_sli_abts_err_handler()
11422 iocbq->iocb.ulpContext); in lpfc_sli_abts_err_handler()
11483 struct lpfc_sli_ring * pring, struct lpfc_iocbq * iocbq) in lpfc_sli_async_event_handler() argument
11491 icmd = &iocbq->iocb; in lpfc_sli_async_event_handler()
11520 lpfc_sli_abts_err_handler(phba, iocbq); in lpfc_sli_async_event_handler()
12552 lpfc_sli_validate_fcp_iocb_for_abort(struct lpfc_iocbq *iocbq, in lpfc_sli_validate_fcp_iocb_for_abort() argument
12558 if (!iocbq || iocbq->vport != vport) in lpfc_sli_validate_fcp_iocb_for_abort()
12564 ulp_command = get_job_cmnd(vport->phba, iocbq); in lpfc_sli_validate_fcp_iocb_for_abort()
12565 if (!(iocbq->cmd_flag & LPFC_IO_FCP) || in lpfc_sli_validate_fcp_iocb_for_abort()
12566 !(iocbq->cmd_flag & LPFC_IO_ON_TXCMPLQ) || in lpfc_sli_validate_fcp_iocb_for_abort()
12567 (iocbq->cmd_flag & LPFC_DRIVER_ABORTED) || in lpfc_sli_validate_fcp_iocb_for_abort()
12601 lpfc_sli_validate_fcp_iocb(struct lpfc_iocbq *iocbq, struct lpfc_vport *vport, in lpfc_sli_validate_fcp_iocb() argument
12608 lpfc_cmd = container_of(iocbq, struct lpfc_io_buf, cur_iocbq); in lpfc_sli_validate_fcp_iocb()
12661 struct lpfc_iocbq *iocbq; in lpfc_sli_sum_iocb() local
12668 iocbq = phba->sli.iocbq_lookup[i]; in lpfc_sli_sum_iocb()
12670 if (!iocbq || iocbq->vport != vport) in lpfc_sli_sum_iocb()
12672 if (!(iocbq->cmd_flag & LPFC_IO_FCP) || in lpfc_sli_sum_iocb()
12673 !(iocbq->cmd_flag & LPFC_IO_ON_TXCMPLQ)) in lpfc_sli_sum_iocb()
12677 ulp_command = get_job_cmnd(phba, iocbq); in lpfc_sli_sum_iocb()
12685 if (lpfc_sli_validate_fcp_iocb(iocbq, vport, tgt_id, lun_id, in lpfc_sli_sum_iocb()
12754 struct lpfc_iocbq *iocbq; in lpfc_sli_abort_iocb() local
12764 iocbq = phba->sli.iocbq_lookup[i]; in lpfc_sli_abort_iocb()
12766 if (lpfc_sli_validate_fcp_iocb_for_abort(iocbq, vport)) in lpfc_sli_abort_iocb()
12769 if (lpfc_sli_validate_fcp_iocb(iocbq, vport, tgt_id, lun_id, in lpfc_sli_abort_iocb()
12777 pring = lpfc_sli4_calc_ring(phba, iocbq); in lpfc_sli_abort_iocb()
12779 ret_val = lpfc_sli_issue_abort_iotag(phba, pring, iocbq, in lpfc_sli_abort_iocb()
12823 struct lpfc_iocbq *iocbq; in lpfc_sli_abort_taskmgmt() local
12840 iocbq = phba->sli.iocbq_lookup[i]; in lpfc_sli_abort_taskmgmt()
12842 if (lpfc_sli_validate_fcp_iocb_for_abort(iocbq, vport)) in lpfc_sli_abort_taskmgmt()
12845 if (lpfc_sli_validate_fcp_iocb(iocbq, vport, tgt_id, lun_id, in lpfc_sli_abort_taskmgmt()
12850 lpfc_cmd = container_of(iocbq, struct lpfc_io_buf, cur_iocbq); in lpfc_sli_abort_taskmgmt()
12860 phba->sli4_hba.hdwq[iocbq->hba_wqidx].io_wq->pring; in lpfc_sli_abort_taskmgmt()
12873 if ((iocbq->cmd_flag & LPFC_DRIVER_ABORTED) || in lpfc_sli_abort_taskmgmt()
12874 !(iocbq->cmd_flag & LPFC_IO_ON_TXCMPLQ)) { in lpfc_sli_abort_taskmgmt()
12892 ulp_context = iocbq->sli4_xritag; in lpfc_sli_abort_taskmgmt()
12895 iotag = iocbq->iocb.ulpIoTag; in lpfc_sli_abort_taskmgmt()
12897 ndlp = iocbq->ndlp; in lpfc_sli_abort_taskmgmt()
12900 ulp_context = iocbq->iocb.ulpContext; in lpfc_sli_abort_taskmgmt()
12914 iocbq->iocb.ulpClass, cqid, in lpfc_sli_abort_taskmgmt()
12920 abtsiocbq->hba_wqidx = iocbq->hba_wqidx; in lpfc_sli_abort_taskmgmt()
12921 if (iocbq->cmd_flag & LPFC_IO_FCP) in lpfc_sli_abort_taskmgmt()
12923 if (iocbq->cmd_flag & LPFC_IO_FOF) in lpfc_sli_abort_taskmgmt()
12933 iocbq->cmd_flag |= LPFC_DRIVER_ABORTED; in lpfc_sli_abort_taskmgmt()
19066 struct lpfc_iocbq *first_iocbq, *iocbq; in lpfc_prep_seq() local
19117 iocbq = first_iocbq; in lpfc_prep_seq()
19123 if (!iocbq) { in lpfc_prep_seq()
19127 if (!iocbq->bpl_dmabuf) { in lpfc_prep_seq()
19128 iocbq->bpl_dmabuf = d_buf; in lpfc_prep_seq()
19129 iocbq->wcqe_cmpl.word3++; in lpfc_prep_seq()
19134 iocbq->unsol_rcv_len = len; in lpfc_prep_seq()
19135 iocbq->wcqe_cmpl.total_data_placed += len; in lpfc_prep_seq()
19138 iocbq = lpfc_sli_get_iocbq(vport->phba); in lpfc_prep_seq()
19139 if (!iocbq) { in lpfc_prep_seq()
19154 iocbq->cmd_dmabuf = d_buf; in lpfc_prep_seq()
19155 iocbq->bpl_dmabuf = NULL; in lpfc_prep_seq()
19156 iocbq->wcqe_cmpl.word3 = 1; in lpfc_prep_seq()
19159 iocbq->wqe.xmit_els_rsp.bde.tus.f.bdeSize = in lpfc_prep_seq()
19162 iocbq->wqe.xmit_els_rsp.bde.tus.f.bdeSize = in lpfc_prep_seq()
19166 iocbq->wcqe_cmpl.total_data_placed = tot_len; in lpfc_prep_seq()
19167 bf_set(wqe_els_did, &iocbq->wqe.xmit_els_rsp.wqe_dest, in lpfc_prep_seq()
19169 list_add_tail(&iocbq->list, &first_iocbq->list); in lpfc_prep_seq()
19184 struct lpfc_iocbq *iocbq, *curr_iocb, *next_iocb; in lpfc_sli4_send_seq_to_ulp() local
19188 iocbq = lpfc_prep_seq(vport, seq_dmabuf); in lpfc_sli4_send_seq_to_ulp()
19189 if (!iocbq) { in lpfc_sli4_send_seq_to_ulp()
19199 iocbq, fc_hdr->fh_r_ctl, in lpfc_sli4_send_seq_to_ulp()
19211 &iocbq->list, list) { in lpfc_sli4_send_seq_to_ulp()
19215 lpfc_sli_release_iocbq(phba, iocbq); in lpfc_sli4_send_seq_to_ulp()
19237 struct lpfc_iocbq *iocbq = NULL; in lpfc_sli4_handle_mds_loopback() local
19248 iocbq = lpfc_sli_get_iocbq(phba); in lpfc_sli4_handle_mds_loopback()
19249 if (!iocbq) { in lpfc_sli4_handle_mds_loopback()
19273 iocbq->cmd_dmabuf = pcmd; in lpfc_sli4_handle_mds_loopback()
19274 iocbq->vport = vport; in lpfc_sli4_handle_mds_loopback()
19275 iocbq->cmd_flag &= ~LPFC_FIP_ELS_ID_MASK; in lpfc_sli4_handle_mds_loopback()
19276 iocbq->cmd_flag |= LPFC_USE_FCPWQIDX; in lpfc_sli4_handle_mds_loopback()
19277 iocbq->num_bdes = 0; in lpfc_sli4_handle_mds_loopback()
19279 pwqe = &iocbq->wqe; in lpfc_sli4_handle_mds_loopback()
19306 bf_set(wqe_xri_tag, &pwqe->generic.wqe_com, iocbq->sli4_xritag); in lpfc_sli4_handle_mds_loopback()
19307 bf_set(wqe_reqtag, &pwqe->generic.wqe_com, iocbq->iotag); in lpfc_sli4_handle_mds_loopback()
19309 pwqe->generic.wqe_com.abort_tag = iocbq->iotag; in lpfc_sli4_handle_mds_loopback()
19311 iocbq->cmd_cmpl = lpfc_sli4_mds_loopback_cmpl; in lpfc_sli4_handle_mds_loopback()
19313 rc = lpfc_sli_issue_iocb(phba, LPFC_ELS_RING, iocbq, 0); in lpfc_sli4_handle_mds_loopback()
19326 if (iocbq) in lpfc_sli4_handle_mds_loopback()
19327 lpfc_sli_release_iocbq(phba, iocbq); in lpfc_sli4_handle_mds_loopback()