Lines Matching refs:lpfc_ncmd

766 		       struct lpfc_io_buf *lpfc_ncmd,  in lpfc_nvme_adj_fcp_sgls()  argument
780 wqe = &lpfc_ncmd->cur_iocbq.wqe; in lpfc_nvme_adj_fcp_sgls()
789 sgl = lpfc_ncmd->dma_sgl; in lpfc_nvme_adj_fcp_sgls()
863 struct lpfc_io_buf *lpfc_ncmd) in lpfc_nvme_ktime() argument
868 if (!lpfc_ncmd->ts_last_cmd || in lpfc_nvme_ktime()
869 !lpfc_ncmd->ts_cmd_start || in lpfc_nvme_ktime()
870 !lpfc_ncmd->ts_cmd_wqput || in lpfc_nvme_ktime()
871 !lpfc_ncmd->ts_isr_cmpl || in lpfc_nvme_ktime()
872 !lpfc_ncmd->ts_data_nvme) in lpfc_nvme_ktime()
875 if (lpfc_ncmd->ts_data_nvme < lpfc_ncmd->ts_cmd_start) in lpfc_nvme_ktime()
877 if (lpfc_ncmd->ts_cmd_start < lpfc_ncmd->ts_last_cmd) in lpfc_nvme_ktime()
879 if (lpfc_ncmd->ts_cmd_wqput < lpfc_ncmd->ts_cmd_start) in lpfc_nvme_ktime()
881 if (lpfc_ncmd->ts_isr_cmpl < lpfc_ncmd->ts_cmd_wqput) in lpfc_nvme_ktime()
883 if (lpfc_ncmd->ts_data_nvme < lpfc_ncmd->ts_isr_cmpl) in lpfc_nvme_ktime()
895 seg1 = lpfc_ncmd->ts_cmd_start - lpfc_ncmd->ts_last_cmd; in lpfc_nvme_ktime()
900 seg2 = (lpfc_ncmd->ts_cmd_wqput - lpfc_ncmd->ts_cmd_start); in lpfc_nvme_ktime()
902 seg3 = lpfc_ncmd->ts_isr_cmpl - lpfc_ncmd->ts_cmd_start; in lpfc_nvme_ktime()
908 seg4 = lpfc_ncmd->ts_data_nvme - lpfc_ncmd->ts_cmd_start; in lpfc_nvme_ktime()
935 lpfc_ncmd->ts_last_cmd = 0; in lpfc_nvme_ktime()
936 lpfc_ncmd->ts_cmd_start = 0; in lpfc_nvme_ktime()
937 lpfc_ncmd->ts_cmd_wqput = 0; in lpfc_nvme_ktime()
938 lpfc_ncmd->ts_isr_cmpl = 0; in lpfc_nvme_ktime()
939 lpfc_ncmd->ts_data_nvme = 0; in lpfc_nvme_ktime()
961 struct lpfc_io_buf *lpfc_ncmd = in lpfc_nvme_io_cmd_wqe_cmpl() local
975 if (!lpfc_ncmd) { in lpfc_nvme_io_cmd_wqe_cmpl()
984 spin_lock(&lpfc_ncmd->buf_lock); in lpfc_nvme_io_cmd_wqe_cmpl()
986 if (!lpfc_ncmd->nvmeCmd) { in lpfc_nvme_io_cmd_wqe_cmpl()
987 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_io_cmd_wqe_cmpl()
991 lpfc_ncmd, lpfc_ncmd->nvmeCmd); in lpfc_nvme_io_cmd_wqe_cmpl()
994 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_io_cmd_wqe_cmpl()
997 nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_io_cmd_wqe_cmpl()
1000 idx = lpfc_ncmd->cur_iocbq.hba_wqidx; in lpfc_nvme_io_cmd_wqe_cmpl()
1013 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_wqe_cmpl()
1019 ndlp = lpfc_ncmd->ndlp; in lpfc_nvme_io_cmd_wqe_cmpl()
1060 lpfc_ncmd->status = IOSTAT_SUCCESS; in lpfc_nvme_io_cmd_wqe_cmpl()
1061 lpfc_ncmd->result = 0; in lpfc_nvme_io_cmd_wqe_cmpl()
1065 lpfc_ncmd->status = (status & LPFC_IOCB_STATUS_MASK); in lpfc_nvme_io_cmd_wqe_cmpl()
1066 lpfc_ncmd->result = (wcqe->parameter & IOERR_PARAM_MASK); in lpfc_nvme_io_cmd_wqe_cmpl()
1079 switch (lpfc_ncmd->status) { in lpfc_nvme_io_cmd_wqe_cmpl()
1096 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_wqe_cmpl()
1097 lpfc_ncmd->status, lpfc_ncmd->result, in lpfc_nvme_io_cmd_wqe_cmpl()
1102 if (lpfc_ncmd->result == IOERR_ABORT_REQUESTED) in lpfc_nvme_io_cmd_wqe_cmpl()
1108 lpfc_ncmd, nCmd, in lpfc_nvme_io_cmd_wqe_cmpl()
1109 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_wqe_cmpl()
1118 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_wqe_cmpl()
1119 lpfc_ncmd->status, lpfc_ncmd->result, in lpfc_nvme_io_cmd_wqe_cmpl()
1130 lpfc_ncmd->flags |= LPFC_SBUF_XBUSY; in lpfc_nvme_io_cmd_wqe_cmpl()
1132 lpfc_ncmd->flags &= ~LPFC_SBUF_XBUSY; in lpfc_nvme_io_cmd_wqe_cmpl()
1139 if (lpfc_ncmd->ts_cmd_start) { in lpfc_nvme_io_cmd_wqe_cmpl()
1140 lpfc_ncmd->ts_isr_cmpl = pwqeIn->isr_timestamp; in lpfc_nvme_io_cmd_wqe_cmpl()
1141 lpfc_ncmd->ts_data_nvme = ktime_get_ns(); in lpfc_nvme_io_cmd_wqe_cmpl()
1142 phba->ktime_last_cmd = lpfc_ncmd->ts_data_nvme; in lpfc_nvme_io_cmd_wqe_cmpl()
1143 lpfc_nvme_ktime(phba, lpfc_ncmd); in lpfc_nvme_io_cmd_wqe_cmpl()
1147 idx = lpfc_ncmd->cur_iocbq.hba_wqidx; in lpfc_nvme_io_cmd_wqe_cmpl()
1150 if (lpfc_ncmd->cpu != cpu) in lpfc_nvme_io_cmd_wqe_cmpl()
1155 cpu, lpfc_ncmd->cpu); in lpfc_nvme_io_cmd_wqe_cmpl()
1165 if (!(lpfc_ncmd->flags & LPFC_SBUF_XBUSY)) { in lpfc_nvme_io_cmd_wqe_cmpl()
1168 lpfc_ncmd->nvmeCmd = NULL; in lpfc_nvme_io_cmd_wqe_cmpl()
1169 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_io_cmd_wqe_cmpl()
1172 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_io_cmd_wqe_cmpl()
1175 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_io_cmd_wqe_cmpl()
1197 struct lpfc_io_buf *lpfc_ncmd, in lpfc_nvme_prep_io_cmd() argument
1202 struct nvmefc_fcp_req *nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_prep_io_cmd()
1203 struct lpfc_iocbq *pwqeq = &(lpfc_ncmd->cur_iocbq); in lpfc_nvme_prep_io_cmd()
1227 req_len = lpfc_ncmd->nvmeCmd->payload_length; in lpfc_nvme_prep_io_cmd()
1306 struct lpfc_io_buf *lpfc_ncmd) in lpfc_nvme_prep_io_dma() argument
1309 struct nvmefc_fcp_req *nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_prep_io_dma()
1310 union lpfc_wqe128 *wqe = &lpfc_ncmd->cur_iocbq.wqe; in lpfc_nvme_prep_io_dma()
1311 struct sli4_sge *sgl = lpfc_ncmd->dma_sgl; in lpfc_nvme_prep_io_dma()
1324 lpfc_nvme_adj_fcp_sgls(vport, lpfc_ncmd, nCmd); in lpfc_nvme_prep_io_dma()
1338 lpfc_ncmd->seg_cnt = nCmd->sg_cnt; in lpfc_nvme_prep_io_dma()
1339 if (lpfc_ncmd->seg_cnt > lpfc_nvme_template.max_sgl_segments) { in lpfc_nvme_prep_io_dma()
1345 lpfc_ncmd->seg_cnt); in lpfc_nvme_prep_io_dma()
1346 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1366 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1387 phba, lpfc_ncmd); in lpfc_nvme_prep_io_dma()
1390 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1458 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1505 struct lpfc_io_buf *lpfc_ncmd; in lpfc_nvme_fcp_io_submit() local
1631 lpfc_ncmd = lpfc_get_nvme_buf(phba, ndlp, idx, expedite); in lpfc_nvme_fcp_io_submit()
1632 if (lpfc_ncmd == NULL) { in lpfc_nvme_fcp_io_submit()
1643 lpfc_ncmd->ts_cmd_start = start; in lpfc_nvme_fcp_io_submit()
1644 lpfc_ncmd->ts_last_cmd = phba->ktime_last_cmd; in lpfc_nvme_fcp_io_submit()
1646 lpfc_ncmd->ts_cmd_start = 0; in lpfc_nvme_fcp_io_submit()
1656 freqpriv->nvme_buf = lpfc_ncmd; in lpfc_nvme_fcp_io_submit()
1657 lpfc_ncmd->nvmeCmd = pnvme_fcreq; in lpfc_nvme_fcp_io_submit()
1658 lpfc_ncmd->ndlp = ndlp; in lpfc_nvme_fcp_io_submit()
1659 lpfc_ncmd->qidx = lpfc_queue_info->qidx; in lpfc_nvme_fcp_io_submit()
1669 lpfc_ncmd->cur_iocbq.hba_wqidx = idx; in lpfc_nvme_fcp_io_submit()
1672 lpfc_nvme_prep_io_cmd(vport, lpfc_ncmd, ndlp, cstat); in lpfc_nvme_fcp_io_submit()
1673 ret = lpfc_nvme_prep_io_dma(vport, lpfc_ncmd); in lpfc_nvme_fcp_io_submit()
1685 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_fcp_io_submit()
1688 ret = lpfc_sli4_issue_wqe(phba, lpfc_ncmd->hdwq, &lpfc_ncmd->cur_iocbq); in lpfc_nvme_fcp_io_submit()
1695 lpfc_ncmd->cur_iocbq.sli4_xritag); in lpfc_nvme_fcp_io_submit()
1700 lpfc_keep_pvt_pool_above_lowwm(phba, lpfc_ncmd->hdwq_no); in lpfc_nvme_fcp_io_submit()
1703 if (lpfc_ncmd->ts_cmd_start) in lpfc_nvme_fcp_io_submit()
1704 lpfc_ncmd->ts_cmd_wqput = ktime_get_ns(); in lpfc_nvme_fcp_io_submit()
1709 lpfc_ncmd->cpu = cpu; in lpfc_nvme_fcp_io_submit()
1715 lpfc_ncmd->cpu, in lpfc_nvme_fcp_io_submit()
1724 if (lpfc_ncmd->nvmeCmd->sg_cnt) { in lpfc_nvme_fcp_io_submit()
1725 if (lpfc_ncmd->nvmeCmd->io_dir == NVMEFC_FCP_WRITE) in lpfc_nvme_fcp_io_submit()
1731 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_fcp_io_submit()
2018 struct lpfc_io_buf *lpfc_ncmd; in lpfc_get_nvme_buf() local
2024 lpfc_ncmd = lpfc_get_io_buf(phba, NULL, idx, expedite); in lpfc_get_nvme_buf()
2026 if (lpfc_ncmd) { in lpfc_get_nvme_buf()
2027 pwqeq = &(lpfc_ncmd->cur_iocbq); in lpfc_get_nvme_buf()
2035 lpfc_ncmd->start_time = jiffies; in lpfc_get_nvme_buf()
2036 lpfc_ncmd->flags = 0; in lpfc_get_nvme_buf()
2042 sgl = lpfc_ncmd->dma_sgl; in lpfc_get_nvme_buf()
2053 lpfc_ncmd->flags |= LPFC_SBUF_BUMP_QDEPTH; in lpfc_get_nvme_buf()
2061 return lpfc_ncmd; in lpfc_get_nvme_buf()
2075 lpfc_release_nvme_buf(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_ncmd) in lpfc_release_nvme_buf() argument
2080 if ((lpfc_ncmd->flags & LPFC_SBUF_BUMP_QDEPTH) && lpfc_ncmd->ndlp) in lpfc_release_nvme_buf()
2081 atomic_dec(&lpfc_ncmd->ndlp->cmd_pending); in lpfc_release_nvme_buf()
2083 lpfc_ncmd->ndlp = NULL; in lpfc_release_nvme_buf()
2084 lpfc_ncmd->flags &= ~LPFC_SBUF_BUMP_QDEPTH; in lpfc_release_nvme_buf()
2086 qp = lpfc_ncmd->hdwq; in lpfc_release_nvme_buf()
2087 if (lpfc_ncmd->flags & LPFC_SBUF_XBUSY) { in lpfc_release_nvme_buf()
2091 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_release_nvme_buf()
2092 lpfc_ncmd->cur_iocbq.iotag); in lpfc_release_nvme_buf()
2095 list_add_tail(&lpfc_ncmd->list, in lpfc_release_nvme_buf()
2100 lpfc_release_io_buf(phba, (struct lpfc_io_buf *)lpfc_ncmd, qp); in lpfc_release_nvme_buf()
2636 struct lpfc_io_buf *lpfc_ncmd) in lpfc_sli4_nvme_xri_aborted() argument
2640 struct lpfc_nodelist *ndlp = lpfc_ncmd->ndlp; in lpfc_sli4_nvme_xri_aborted()
2649 lpfc_ncmd->nvmeCmd, xri, in lpfc_sli4_nvme_xri_aborted()
2650 lpfc_ncmd->cur_iocbq.iotag); in lpfc_sli4_nvme_xri_aborted()
2656 if (lpfc_ncmd->nvmeCmd) { in lpfc_sli4_nvme_xri_aborted()
2657 nvme_cmd = lpfc_ncmd->nvmeCmd; in lpfc_sli4_nvme_xri_aborted()
2659 lpfc_ncmd->nvmeCmd = NULL; in lpfc_sli4_nvme_xri_aborted()
2661 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_sli4_nvme_xri_aborted()
2715 struct lpfc_io_buf *lpfc_ncmd; in lpfc_nvme_cancel_iocb() local
2729 lpfc_ncmd = (struct lpfc_io_buf *)pwqeIn->context1; in lpfc_nvme_cancel_iocb()
2731 spin_lock(&lpfc_ncmd->buf_lock); in lpfc_nvme_cancel_iocb()
2732 if (!lpfc_ncmd->nvmeCmd) { in lpfc_nvme_cancel_iocb()
2733 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_cancel_iocb()
2734 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_cancel_iocb()
2738 nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_cancel_iocb()
2741 lpfc_ncmd->cur_iocbq.sli4_xritag); in lpfc_nvme_cancel_iocb()
2748 lpfc_ncmd->nvmeCmd = NULL; in lpfc_nvme_cancel_iocb()
2750 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_cancel_iocb()
2754 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_cancel_iocb()