Lines Matching refs:piocb

1520 	struct lpfc_iocbq *piocb;
1523 list_remove_head(iocblist, piocb, struct lpfc_iocbq, list);
1524 if (piocb->cmd_cmpl) {
1525 if (piocb->cmd_flag & LPFC_IO_NVME) {
1526 lpfc_nvme_cancel_iocb(phba, piocb,
1531 &piocb->wcqe_cmpl, ulpstatus);
1532 piocb->wcqe_cmpl.parameter = ulpWord4;
1534 piocb->iocb.ulpStatus = ulpstatus;
1535 piocb->iocb.un.ulpWord[4] = ulpWord4;
1537 (piocb->cmd_cmpl) (phba, piocb, piocb);
1540 lpfc_sli_release_iocbq(phba, piocb);
1709 * @piocb: Pointer to the driver iocb object.
1720 struct lpfc_iocbq *piocb)
1724 BUG_ON(!piocb);
1725 ulp_command = get_job_cmnd(phba, piocb);
1727 list_add_tail(&piocb->list, &pring->txcmplq);
1728 piocb->cmd_flag |= LPFC_IO_ON_TXCMPLQ;
1734 BUG_ON(!piocb->vport);
1735 if (!(piocb->vport->load_flag & FC_UNLOADING))
1736 mod_timer(&piocb->vport->els_tmofunc,
3202 * @piocb: pointer to the iocbq struct representing the sequence starting
3210 lpfc_nvme_unsol_ls_handler(struct lpfc_hba *phba, struct lpfc_iocbq *piocb)
3221 d_buf = piocb->cmd_dmabuf;
4677 struct lpfc_iocbq *piocb, *next_iocb;
4692 list_for_each_entry_safe(piocb, next_iocb,
4694 piocb->cmd_flag &= ~LPFC_IO_ON_TXCMPLQ;
4718 list_for_each_entry_safe(piocb, next_iocb,
4720 piocb->cmd_flag &= ~LPFC_IO_ON_TXCMPLQ;
10345 * @piocb: Pointer to address of newly added command iocb.
10354 struct lpfc_iocbq *piocb)
10361 list_add_tail(&piocb->list, &pring->txq);
10368 * @piocb: Pointer to address of newly added command iocb.
10378 * *piocb and *piocb is set to NULL. Caller needs to check
10379 * *piocb to find if there are more commands in the txq.
10383 struct lpfc_iocbq **piocb)
10391 nextiocb = *piocb;
10392 *piocb = NULL;
10402 * @piocb: Pointer to command iocb.
10422 struct lpfc_iocbq *piocb, uint32_t flag)
10430 if (piocb->cmd_cmpl && (!piocb->vport) &&
10431 (piocb->iocb.ulpCommand != CMD_ABORT_XRI_CN) &&
10432 (piocb->iocb.ulpCommand != CMD_CLOSE_XRI_CN)) {
10435 piocb->iocb.ulpCommand);
10467 switch (piocb->iocb.ulpCommand) {
10474 if (piocb->cmd_cmpl)
10475 piocb->cmd_cmpl = NULL;
10495 (nextiocb = lpfc_sli_next_iocb(phba, pring, &piocb)))
10503 if (!piocb)
10514 __lpfc_sli_ringtx_put(phba, pring, piocb);
10525 * @piocb: Pointer to command iocb.
10537 struct lpfc_iocbq *piocb, uint32_t flag)
10543 rc = __lpfc_sli_issue_iocb_s3(phba, ring_number, piocb, flag);
10553 * @piocb: Pointer to command iocb.
10565 struct lpfc_iocbq *piocb, uint32_t flag)
10567 struct lpfc_io_buf *lpfc_cmd = piocb->io_buf;
10570 return lpfc_sli4_issue_wqe(phba, lpfc_cmd->hdwq, piocb);
10576 struct lpfc_iocbq *piocb = &lpfc_cmd->cur_iocbq;
10615 if (unlikely(piocb->cmd_flag & LPFC_IO_VMID)) {
10619 (piocb->vmid_tag.cs_ctl_vmid));
10623 wqe->words[31] = piocb->vmid_tag.app_id;
10632 * @piocb: Pointer to command iocb.
10644 struct lpfc_iocbq *piocb, uint32_t flag)
10650 u32 ulp_command = get_job_cmnd(phba, piocb);
10653 if ((piocb->cmd_flag & LPFC_IO_FCP) ||
10654 (piocb->cmd_flag & LPFC_USE_FCPWQIDX)) {
10655 wq = phba->sli4_hba.hdwq[piocb->hba_wqidx].io_wq;
10668 wqe = &piocb->wqe;
10669 if (piocb->sli4_xritag == NO_XRI) {
10673 sglq = __lpfc_sli_get_els_sglq(phba, piocb);
10678 piocb);
10685 } else if (piocb->cmd_flag & LPFC_IO_FCP) {
10694 sglq = __lpfc_get_active_sglq(phba, piocb->sli4_lxritag);
10700 piocb->sli4_lxritag = sglq->sli4_lxritag;
10701 piocb->sli4_xritag = sglq->sli4_xritag;
10708 piocb->abort_bls == LPFC_ABTS_UNSOL_INT)
10710 piocb->sli4_xritag);
10713 piocb->sli4_xritag);
10715 if (lpfc_wqe_bpl2sgl(phba, piocb, sglq) == NO_XRI)
10722 lpfc_sli_ringtxcmpl_put(phba, pring, piocb);
10741 struct lpfc_iocbq *piocb, uint32_t flag)
10743 return phba->__lpfc_sli_issue_fcp_io(phba, ring_number, piocb, flag);
10759 struct lpfc_iocbq *piocb, uint32_t flag)
10761 return phba->__lpfc_sli_issue_iocb(phba, ring_number, piocb, flag);
11213 * @piocb: Pointer to command iocb.
11221 lpfc_sli4_calc_ring(struct lpfc_hba *phba, struct lpfc_iocbq *piocb)
11225 if (piocb->cmd_flag & (LPFC_IO_FCP | LPFC_USE_FCPWQIDX)) {
11232 if (!(piocb->cmd_flag & LPFC_USE_FCPWQIDX)) {
11233 lpfc_cmd = piocb->io_buf;
11234 piocb->hba_wqidx = lpfc_cmd->hdwq_no;
11236 return phba->sli4_hba.hdwq[piocb->hba_wqidx].io_wq->pring;
11240 piocb->hba_wqidx = 0;
11274 * @piocb: Pointer to command iocb.
11285 struct lpfc_iocbq *piocb, uint32_t flag)
11297 lpfc_sli_prep_wqe(phba, piocb);
11299 eq = phba->sli4_hba.hdwq[piocb->hba_wqidx].hba_eq;
11301 pring = lpfc_sli4_calc_ring(phba, piocb);
11306 rc = __lpfc_sli_issue_iocb(phba, ring_number, piocb, flag);
11313 rc = __lpfc_sli_issue_iocb(phba, ring_number, piocb, flag);
13069 * @piocb: Pointer to command iocb.
13104 struct lpfc_iocbq *piocb,
13120 lpfc_sli_prep_wqe(phba, piocb);
13122 pring = lpfc_sli4_calc_ring(phba, piocb);
13130 if (piocb->rsp_iocb)
13132 piocb->rsp_iocb = prspiocbq;
13135 piocb->wait_cmd_cmpl = piocb->cmd_cmpl;
13136 piocb->cmd_cmpl = lpfc_sli_wake_iocb_wait;
13137 piocb->context_un.wait_queue = &done_q;
13138 piocb->cmd_flag &= ~(LPFC_IO_WAKE | LPFC_IO_WAKE_TMO);
13148 retval = lpfc_sli_issue_iocb(phba, ring_number, piocb,
13153 lpfc_chk_iocb_flg(phba, piocb, LPFC_IO_WAKE),
13156 if (!(piocb->cmd_flag & LPFC_IO_WAKE)) {
13164 piocb->cmd_flag |= LPFC_IO_WAKE_TMO;
13216 piocb->rsp_iocb = NULL;
13218 piocb->context_un.wait_queue = NULL;
13219 piocb->cmd_cmpl = NULL;