Lines Matching refs:lpfc_ncmd
969 struct lpfc_io_buf *lpfc_ncmd, in lpfc_nvme_adj_fcp_sgls() argument
983 wqe = &lpfc_ncmd->cur_iocbq.wqe; in lpfc_nvme_adj_fcp_sgls()
992 sgl = lpfc_ncmd->dma_sgl; in lpfc_nvme_adj_fcp_sgls()
1079 struct lpfc_io_buf *lpfc_ncmd = in lpfc_nvme_io_cmd_wqe_cmpl() local
1096 if (!lpfc_ncmd) { in lpfc_nvme_io_cmd_wqe_cmpl()
1104 spin_lock(&lpfc_ncmd->buf_lock); in lpfc_nvme_io_cmd_wqe_cmpl()
1106 if (!lpfc_ncmd->nvmeCmd) { in lpfc_nvme_io_cmd_wqe_cmpl()
1107 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_io_cmd_wqe_cmpl()
1111 lpfc_ncmd, lpfc_ncmd->nvmeCmd); in lpfc_nvme_io_cmd_wqe_cmpl()
1114 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_io_cmd_wqe_cmpl()
1117 nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_io_cmd_wqe_cmpl()
1120 idx = lpfc_ncmd->cur_iocbq.hba_wqidx; in lpfc_nvme_io_cmd_wqe_cmpl()
1133 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_wqe_cmpl()
1139 ndlp = lpfc_ncmd->ndlp; in lpfc_nvme_io_cmd_wqe_cmpl()
1180 lpfc_ncmd->status = IOSTAT_SUCCESS; in lpfc_nvme_io_cmd_wqe_cmpl()
1181 lpfc_ncmd->result = 0; in lpfc_nvme_io_cmd_wqe_cmpl()
1185 lpfc_ncmd->status = (status & LPFC_IOCB_STATUS_MASK); in lpfc_nvme_io_cmd_wqe_cmpl()
1186 lpfc_ncmd->result = (wcqe->parameter & IOERR_PARAM_MASK); in lpfc_nvme_io_cmd_wqe_cmpl()
1199 switch (lpfc_ncmd->status) { in lpfc_nvme_io_cmd_wqe_cmpl()
1216 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_wqe_cmpl()
1217 lpfc_ncmd->status, lpfc_ncmd->result, in lpfc_nvme_io_cmd_wqe_cmpl()
1222 if (lpfc_ncmd->result == IOERR_ABORT_REQUESTED) in lpfc_nvme_io_cmd_wqe_cmpl()
1228 lpfc_ncmd, nCmd, in lpfc_nvme_io_cmd_wqe_cmpl()
1229 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_wqe_cmpl()
1238 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_wqe_cmpl()
1239 lpfc_ncmd->status, lpfc_ncmd->result, in lpfc_nvme_io_cmd_wqe_cmpl()
1250 lpfc_ncmd->flags |= LPFC_SBUF_XBUSY; in lpfc_nvme_io_cmd_wqe_cmpl()
1252 lpfc_ncmd->flags &= ~LPFC_SBUF_XBUSY; in lpfc_nvme_io_cmd_wqe_cmpl()
1259 if (lpfc_ncmd->ts_cmd_start) { in lpfc_nvme_io_cmd_wqe_cmpl()
1260 lpfc_ncmd->ts_isr_cmpl = pwqeIn->isr_timestamp; in lpfc_nvme_io_cmd_wqe_cmpl()
1261 lpfc_ncmd->ts_data_io = ktime_get_ns(); in lpfc_nvme_io_cmd_wqe_cmpl()
1262 phba->ktime_last_cmd = lpfc_ncmd->ts_data_io; in lpfc_nvme_io_cmd_wqe_cmpl()
1263 lpfc_io_ktime(phba, lpfc_ncmd); in lpfc_nvme_io_cmd_wqe_cmpl()
1268 if (lpfc_ncmd->cpu != cpu) in lpfc_nvme_io_cmd_wqe_cmpl()
1273 cpu, lpfc_ncmd->cpu); in lpfc_nvme_io_cmd_wqe_cmpl()
1281 if (!(lpfc_ncmd->flags & LPFC_SBUF_XBUSY)) { in lpfc_nvme_io_cmd_wqe_cmpl()
1284 lpfc_ncmd->nvmeCmd = NULL; in lpfc_nvme_io_cmd_wqe_cmpl()
1285 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_io_cmd_wqe_cmpl()
1288 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_io_cmd_wqe_cmpl()
1291 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_io_cmd_wqe_cmpl()
1312 struct lpfc_io_buf *lpfc_ncmd, in lpfc_nvme_prep_io_cmd() argument
1317 struct nvmefc_fcp_req *nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_prep_io_cmd()
1319 struct lpfc_iocbq *pwqeq = &lpfc_ncmd->cur_iocbq; in lpfc_nvme_prep_io_cmd()
1343 req_len = lpfc_ncmd->nvmeCmd->payload_length; in lpfc_nvme_prep_io_cmd()
1425 struct lpfc_io_buf *lpfc_ncmd) in lpfc_nvme_prep_io_dma() argument
1428 struct nvmefc_fcp_req *nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_prep_io_dma()
1429 union lpfc_wqe128 *wqe = &lpfc_ncmd->cur_iocbq.wqe; in lpfc_nvme_prep_io_dma()
1430 struct sli4_sge *sgl = lpfc_ncmd->dma_sgl; in lpfc_nvme_prep_io_dma()
1443 lpfc_nvme_adj_fcp_sgls(vport, lpfc_ncmd, nCmd); in lpfc_nvme_prep_io_dma()
1457 lpfc_ncmd->seg_cnt = nCmd->sg_cnt; in lpfc_nvme_prep_io_dma()
1458 if (lpfc_ncmd->seg_cnt > lpfc_nvme_template.max_sgl_segments) { in lpfc_nvme_prep_io_dma()
1464 lpfc_ncmd->seg_cnt); in lpfc_nvme_prep_io_dma()
1465 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1485 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1506 phba, lpfc_ncmd); in lpfc_nvme_prep_io_dma()
1509 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1577 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1624 struct lpfc_io_buf *lpfc_ncmd; in lpfc_nvme_fcp_io_submit() local
1745 lpfc_ncmd = lpfc_get_nvme_buf(phba, ndlp, idx, expedite); in lpfc_nvme_fcp_io_submit()
1746 if (lpfc_ncmd == NULL) { in lpfc_nvme_fcp_io_submit()
1757 lpfc_ncmd->ts_cmd_start = start; in lpfc_nvme_fcp_io_submit()
1758 lpfc_ncmd->ts_last_cmd = phba->ktime_last_cmd; in lpfc_nvme_fcp_io_submit()
1760 lpfc_ncmd->ts_cmd_start = 0; in lpfc_nvme_fcp_io_submit()
1770 freqpriv->nvme_buf = lpfc_ncmd; in lpfc_nvme_fcp_io_submit()
1771 lpfc_ncmd->nvmeCmd = pnvme_fcreq; in lpfc_nvme_fcp_io_submit()
1772 lpfc_ncmd->ndlp = ndlp; in lpfc_nvme_fcp_io_submit()
1773 lpfc_ncmd->qidx = lpfc_queue_info->qidx; in lpfc_nvme_fcp_io_submit()
1783 lpfc_ncmd->cur_iocbq.hba_wqidx = idx; in lpfc_nvme_fcp_io_submit()
1786 lpfc_nvme_prep_io_cmd(vport, lpfc_ncmd, ndlp, cstat); in lpfc_nvme_fcp_io_submit()
1787 ret = lpfc_nvme_prep_io_dma(vport, lpfc_ncmd); in lpfc_nvme_fcp_io_submit()
1799 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_fcp_io_submit()
1802 ret = lpfc_sli4_issue_wqe(phba, lpfc_ncmd->hdwq, &lpfc_ncmd->cur_iocbq); in lpfc_nvme_fcp_io_submit()
1809 lpfc_ncmd->cur_iocbq.sli4_xritag); in lpfc_nvme_fcp_io_submit()
1814 lpfc_keep_pvt_pool_above_lowwm(phba, lpfc_ncmd->hdwq_no); in lpfc_nvme_fcp_io_submit()
1817 if (lpfc_ncmd->ts_cmd_start) in lpfc_nvme_fcp_io_submit()
1818 lpfc_ncmd->ts_cmd_wqput = ktime_get_ns(); in lpfc_nvme_fcp_io_submit()
1823 lpfc_ncmd->cpu = cpu; in lpfc_nvme_fcp_io_submit()
1829 lpfc_ncmd->cpu, in lpfc_nvme_fcp_io_submit()
1836 if (lpfc_ncmd->nvmeCmd->sg_cnt) { in lpfc_nvme_fcp_io_submit()
1837 if (lpfc_ncmd->nvmeCmd->io_dir == NVMEFC_FCP_WRITE) in lpfc_nvme_fcp_io_submit()
1843 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_fcp_io_submit()
2100 struct lpfc_io_buf *lpfc_ncmd; in lpfc_get_nvme_buf() local
2106 lpfc_ncmd = lpfc_get_io_buf(phba, NULL, idx, expedite); in lpfc_get_nvme_buf()
2108 if (lpfc_ncmd) { in lpfc_get_nvme_buf()
2109 pwqeq = &(lpfc_ncmd->cur_iocbq); in lpfc_get_nvme_buf()
2117 lpfc_ncmd->start_time = jiffies; in lpfc_get_nvme_buf()
2118 lpfc_ncmd->flags = 0; in lpfc_get_nvme_buf()
2124 sgl = lpfc_ncmd->dma_sgl; in lpfc_get_nvme_buf()
2135 lpfc_ncmd->flags |= LPFC_SBUF_BUMP_QDEPTH; in lpfc_get_nvme_buf()
2143 return lpfc_ncmd; in lpfc_get_nvme_buf()
2157 lpfc_release_nvme_buf(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_ncmd) in lpfc_release_nvme_buf() argument
2162 if ((lpfc_ncmd->flags & LPFC_SBUF_BUMP_QDEPTH) && lpfc_ncmd->ndlp) in lpfc_release_nvme_buf()
2163 atomic_dec(&lpfc_ncmd->ndlp->cmd_pending); in lpfc_release_nvme_buf()
2165 lpfc_ncmd->ndlp = NULL; in lpfc_release_nvme_buf()
2166 lpfc_ncmd->flags &= ~LPFC_SBUF_BUMP_QDEPTH; in lpfc_release_nvme_buf()
2168 qp = lpfc_ncmd->hdwq; in lpfc_release_nvme_buf()
2169 if (unlikely(lpfc_ncmd->flags & LPFC_SBUF_XBUSY)) { in lpfc_release_nvme_buf()
2173 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_release_nvme_buf()
2174 lpfc_ncmd->cur_iocbq.iotag); in lpfc_release_nvme_buf()
2177 list_add_tail(&lpfc_ncmd->list, in lpfc_release_nvme_buf()
2182 lpfc_release_io_buf(phba, (struct lpfc_io_buf *)lpfc_ncmd, qp); in lpfc_release_nvme_buf()
2698 struct lpfc_io_buf *lpfc_ncmd) in lpfc_sli4_nvme_xri_aborted() argument
2702 struct lpfc_nodelist *ndlp = lpfc_ncmd->ndlp; in lpfc_sli4_nvme_xri_aborted()
2711 lpfc_ncmd->nvmeCmd, xri, in lpfc_sli4_nvme_xri_aborted()
2712 lpfc_ncmd->cur_iocbq.iotag); in lpfc_sli4_nvme_xri_aborted()
2718 if (lpfc_ncmd->nvmeCmd) { in lpfc_sli4_nvme_xri_aborted()
2719 nvme_cmd = lpfc_ncmd->nvmeCmd; in lpfc_sli4_nvme_xri_aborted()
2721 lpfc_ncmd->nvmeCmd = NULL; in lpfc_sli4_nvme_xri_aborted()
2723 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_sli4_nvme_xri_aborted()
2777 struct lpfc_io_buf *lpfc_ncmd; in lpfc_nvme_cancel_iocb() local
2791 lpfc_ncmd = (struct lpfc_io_buf *)pwqeIn->context1; in lpfc_nvme_cancel_iocb()
2793 spin_lock(&lpfc_ncmd->buf_lock); in lpfc_nvme_cancel_iocb()
2794 if (!lpfc_ncmd->nvmeCmd) { in lpfc_nvme_cancel_iocb()
2795 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_cancel_iocb()
2796 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_cancel_iocb()
2800 nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_cancel_iocb()
2803 lpfc_ncmd->cur_iocbq.sli4_xritag); in lpfc_nvme_cancel_iocb()
2810 lpfc_ncmd->nvmeCmd = NULL; in lpfc_nvme_cancel_iocb()
2812 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_cancel_iocb()
2816 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_cancel_iocb()