Lines Matching refs:piocb

1405 	struct lpfc_iocbq *piocb;
1408 list_remove_head(iocblist, piocb, struct lpfc_iocbq, list);
1409 if (!piocb->iocb_cmpl) {
1410 if (piocb->iocb_flag & LPFC_IO_NVME)
1411 lpfc_nvme_cancel_iocb(phba, piocb);
1413 lpfc_sli_release_iocbq(phba, piocb);
1415 piocb->iocb.ulpStatus = ulpstatus;
1416 piocb->iocb.un.ulpWord[4] = ulpWord4;
1417 (piocb->iocb_cmpl) (phba, piocb, piocb);
1586 * @piocb: Pointer to the driver iocb object.
1597 struct lpfc_iocbq *piocb)
1604 BUG_ON(!piocb);
1606 list_add_tail(&piocb->list, &pring->txcmplq);
1607 piocb->iocb_flag |= LPFC_IO_ON_TXCMPLQ;
1611 (piocb->iocb.ulpCommand != CMD_ABORT_XRI_CN) &&
1612 (piocb->iocb.ulpCommand != CMD_CLOSE_XRI_CN)) {
1613 BUG_ON(!piocb->vport);
1614 if (!(piocb->vport->load_flag & FC_UNLOADING))
1615 mod_timer(&piocb->vport->els_tmofunc,
2793 * @piocb: pointer to the iocbq struct representing the sequence starting
2801 lpfc_nvme_unsol_ls_handler(struct lpfc_hba *phba, struct lpfc_iocbq *piocb)
2812 d_buf = piocb->context2;
4144 struct lpfc_iocbq *piocb, *next_iocb;
4164 list_for_each_entry_safe(piocb, next_iocb,
4166 piocb->iocb_flag &= ~LPFC_IO_ON_TXCMPLQ;
4188 list_for_each_entry_safe(piocb, next_iocb,
4190 piocb->iocb_flag &= ~LPFC_IO_ON_TXCMPLQ;
9209 * @piocb: Pointer to address of newly added command iocb.
9218 struct lpfc_iocbq *piocb)
9225 list_add_tail(&piocb->list, &pring->txq);
9232 * @piocb: Pointer to address of newly added command iocb.
9242 * *piocb and *piocb is set to NULL. Caller needs to check
9243 * *piocb to find if there are more commands in the txq.
9247 struct lpfc_iocbq **piocb)
9255 nextiocb = *piocb;
9256 *piocb = NULL;
9266 * @piocb: Pointer to command iocb.
9286 struct lpfc_iocbq *piocb, uint32_t flag)
9294 if (piocb->iocb_cmpl && (!piocb->vport) &&
9295 (piocb->iocb.ulpCommand != CMD_ABORT_XRI_CN) &&
9296 (piocb->iocb.ulpCommand != CMD_CLOSE_XRI_CN)) {
9299 piocb->iocb.ulpCommand);
9331 switch (piocb->iocb.ulpCommand) {
9335 (piocb->iocb.un.genreq64.w5.hcsw.Rctl !=
9337 (piocb->iocb.un.genreq64.w5.hcsw.Type !=
9348 if (piocb->iocb_cmpl)
9349 piocb->iocb_cmpl = NULL;
9369 (nextiocb = lpfc_sli_next_iocb(phba, pring, &piocb)))
9377 if (!piocb)
9388 __lpfc_sli_ringtx_put(phba, pring, piocb);
10108 * @piocb: Pointer to command iocb.
10120 struct lpfc_iocbq *piocb, uint32_t flag)
10128 if ((piocb->iocb_flag & LPFC_IO_FCP) ||
10129 (piocb->iocb_flag & LPFC_USE_FCPWQIDX)) {
10130 wq = phba->sli4_hba.hdwq[piocb->hba_wqidx].io_wq;
10144 if (piocb->sli4_xritag == NO_XRI) {
10145 if (piocb->iocb.ulpCommand == CMD_ABORT_XRI_CN ||
10146 piocb->iocb.ulpCommand == CMD_CLOSE_XRI_CN)
10152 pring, piocb);
10158 sglq = __lpfc_sli_get_els_sglq(phba, piocb);
10163 piocb);
10170 } else if (piocb->iocb_flag & LPFC_IO_FCP)
10178 sglq = __lpfc_get_active_sglq(phba, piocb->sli4_lxritag);
10184 piocb->sli4_lxritag = sglq->sli4_lxritag;
10185 piocb->sli4_xritag = sglq->sli4_xritag;
10186 if (NO_XRI == lpfc_sli4_bpl2sgl(phba, piocb, sglq))
10190 if (lpfc_sli4_iocb2wqe(phba, piocb, &wqe))
10195 lpfc_sli_ringtxcmpl_put(phba, pring, piocb);
10213 struct lpfc_iocbq *piocb, uint32_t flag)
10215 return phba->__lpfc_sli_issue_iocb(phba, ring_number, piocb, flag);
10254 * @piocb: Pointer to command iocb.
10262 lpfc_sli4_calc_ring(struct lpfc_hba *phba, struct lpfc_iocbq *piocb)
10266 if (piocb->iocb_flag & (LPFC_IO_FCP | LPFC_USE_FCPWQIDX)) {
10273 if (!(piocb->iocb_flag & LPFC_USE_FCPWQIDX)) {
10274 lpfc_cmd = (struct lpfc_io_buf *)piocb->context1;
10275 piocb->hba_wqidx = lpfc_cmd->hdwq_no;
10277 return phba->sli4_hba.hdwq[piocb->hba_wqidx].io_wq->pring;
10281 piocb->hba_wqidx = 0;
10290 * @piocb: Pointer to command iocb.
10301 struct lpfc_iocbq *piocb, uint32_t flag)
10309 eq = phba->sli4_hba.hdwq[piocb->hba_wqidx].hba_eq;
10311 pring = lpfc_sli4_calc_ring(phba, piocb);
10316 rc = __lpfc_sli_issue_iocb(phba, ring_number, piocb, flag);
10323 rc = __lpfc_sli_issue_iocb(phba, ring_number, piocb, flag);
12062 * @piocb: Pointer to command iocb.
12097 struct lpfc_iocbq *piocb,
12113 pring = lpfc_sli4_calc_ring(phba, piocb);
12121 if (piocb->context2)
12123 piocb->context2 = prspiocbq;
12126 piocb->wait_iocb_cmpl = piocb->iocb_cmpl;
12127 piocb->iocb_cmpl = lpfc_sli_wake_iocb_wait;
12128 piocb->context_un.wait_queue = &done_q;
12129 piocb->iocb_flag &= ~(LPFC_IO_WAKE | LPFC_IO_WAKE_TMO);
12139 retval = lpfc_sli_issue_iocb(phba, ring_number, piocb,
12144 lpfc_chk_iocb_flg(phba, piocb, LPFC_IO_WAKE),
12147 if (!(piocb->iocb_flag & LPFC_IO_WAKE)) {
12155 piocb->iocb_flag |= LPFC_IO_WAKE_TMO;
12207 piocb->context2 = NULL;
12209 piocb->context_un.wait_queue = NULL;
12210 piocb->iocb_cmpl = NULL;