Lines Matching refs:lpfc_ncmd

826 		       struct lpfc_io_buf *lpfc_ncmd,  in lpfc_nvme_adj_fcp_sgls()  argument
840 wqe = &lpfc_ncmd->cur_iocbq.wqe; in lpfc_nvme_adj_fcp_sgls()
849 sgl = lpfc_ncmd->dma_sgl; in lpfc_nvme_adj_fcp_sgls()
936 struct lpfc_io_buf *lpfc_ncmd = pwqeIn->io_buf; in lpfc_nvme_io_cmd_cmpl() local
956 if (!lpfc_ncmd) { in lpfc_nvme_io_cmd_cmpl()
964 spin_lock(&lpfc_ncmd->buf_lock); in lpfc_nvme_io_cmd_cmpl()
966 if (!lpfc_ncmd->nvmeCmd) { in lpfc_nvme_io_cmd_cmpl()
967 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_io_cmd_cmpl()
971 lpfc_ncmd, lpfc_ncmd->nvmeCmd); in lpfc_nvme_io_cmd_cmpl()
974 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_io_cmd_cmpl()
977 nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_io_cmd_cmpl()
980 idx = lpfc_ncmd->cur_iocbq.hba_wqidx; in lpfc_nvme_io_cmd_cmpl()
993 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_cmpl()
999 ndlp = lpfc_ncmd->ndlp; in lpfc_nvme_io_cmd_cmpl()
1040 lpfc_ncmd->status = IOSTAT_SUCCESS; in lpfc_nvme_io_cmd_cmpl()
1041 lpfc_ncmd->result = 0; in lpfc_nvme_io_cmd_cmpl()
1045 lpfc_ncmd->status = status; in lpfc_nvme_io_cmd_cmpl()
1046 lpfc_ncmd->result = (wcqe->parameter & IOERR_PARAM_MASK); in lpfc_nvme_io_cmd_cmpl()
1059 switch (lpfc_ncmd->status) { in lpfc_nvme_io_cmd_cmpl()
1076 lpfc_ncmd->status = IOSTAT_SUCCESS; in lpfc_nvme_io_cmd_cmpl()
1077 lpfc_ncmd->result = 0; in lpfc_nvme_io_cmd_cmpl()
1083 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_cmpl()
1095 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_cmpl()
1096 lpfc_ncmd->status, lpfc_ncmd->result, in lpfc_nvme_io_cmd_cmpl()
1104 if (lpfc_ncmd->result == IOERR_ABORT_REQUESTED) in lpfc_nvme_io_cmd_cmpl()
1110 lpfc_ncmd, nCmd, in lpfc_nvme_io_cmd_cmpl()
1111 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_cmpl()
1120 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_io_cmd_cmpl()
1121 lpfc_ncmd->status, lpfc_ncmd->result, in lpfc_nvme_io_cmd_cmpl()
1133 lpfc_ncmd->flags |= LPFC_SBUF_XBUSY; in lpfc_nvme_io_cmd_cmpl()
1135 lpfc_ncmd->flags &= ~LPFC_SBUF_XBUSY; in lpfc_nvme_io_cmd_cmpl()
1142 if (lpfc_ncmd->ts_cmd_start) { in lpfc_nvme_io_cmd_cmpl()
1143 lpfc_ncmd->ts_isr_cmpl = pwqeIn->isr_timestamp; in lpfc_nvme_io_cmd_cmpl()
1144 lpfc_ncmd->ts_data_io = ktime_get_ns(); in lpfc_nvme_io_cmd_cmpl()
1145 phba->ktime_last_cmd = lpfc_ncmd->ts_data_io; in lpfc_nvme_io_cmd_cmpl()
1146 lpfc_io_ktime(phba, lpfc_ncmd); in lpfc_nvme_io_cmd_cmpl()
1151 if (lpfc_ncmd->cpu != cpu) in lpfc_nvme_io_cmd_cmpl()
1156 cpu, lpfc_ncmd->cpu); in lpfc_nvme_io_cmd_cmpl()
1164 if (!(lpfc_ncmd->flags & LPFC_SBUF_XBUSY)) { in lpfc_nvme_io_cmd_cmpl()
1167 lpfc_ncmd->nvmeCmd = NULL; in lpfc_nvme_io_cmd_cmpl()
1170 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_io_cmd_cmpl()
1177 lat = ktime_get_ns() - lpfc_ncmd->rx_cmd_start; in lpfc_nvme_io_cmd_cmpl()
1185 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_io_cmd_cmpl()
1206 struct lpfc_io_buf *lpfc_ncmd, in lpfc_nvme_prep_io_cmd() argument
1211 struct nvmefc_fcp_req *nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_prep_io_cmd()
1213 struct lpfc_iocbq *pwqeq = &lpfc_ncmd->cur_iocbq; in lpfc_nvme_prep_io_cmd()
1234 req_len = lpfc_ncmd->nvmeCmd->payload_length; in lpfc_nvme_prep_io_cmd()
1304 if (unlikely(lpfc_ncmd->cur_iocbq.cmd_flag & LPFC_IO_VMID)) { in lpfc_nvme_prep_io_cmd()
1308 lpfc_ncmd->cur_iocbq.vmid_tag.cs_ctl_vmid); in lpfc_nvme_prep_io_cmd()
1312 wqe->words[31] = lpfc_ncmd->cur_iocbq.vmid_tag.app_id; in lpfc_nvme_prep_io_cmd()
1336 struct lpfc_io_buf *lpfc_ncmd) in lpfc_nvme_prep_io_dma() argument
1339 struct nvmefc_fcp_req *nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_prep_io_dma()
1340 union lpfc_wqe128 *wqe = &lpfc_ncmd->cur_iocbq.wqe; in lpfc_nvme_prep_io_dma()
1341 struct sli4_sge *sgl = lpfc_ncmd->dma_sgl; in lpfc_nvme_prep_io_dma()
1353 lpfc_nvme_adj_fcp_sgls(vport, lpfc_ncmd, nCmd); in lpfc_nvme_prep_io_dma()
1367 lpfc_ncmd->seg_cnt = nCmd->sg_cnt; in lpfc_nvme_prep_io_dma()
1368 if (lpfc_ncmd->seg_cnt > lpfc_nvme_template.max_sgl_segments) { in lpfc_nvme_prep_io_dma()
1374 lpfc_ncmd->seg_cnt); in lpfc_nvme_prep_io_dma()
1375 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1395 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1416 phba, lpfc_ncmd); in lpfc_nvme_prep_io_dma()
1419 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1490 lpfc_ncmd->seg_cnt = 0; in lpfc_nvme_prep_io_dma()
1535 struct lpfc_io_buf *lpfc_ncmd; in lpfc_nvme_fcp_io_submit() local
1673 lpfc_ncmd = lpfc_get_nvme_buf(phba, ndlp, idx, expedite); in lpfc_nvme_fcp_io_submit()
1674 if (lpfc_ncmd == NULL) { in lpfc_nvme_fcp_io_submit()
1685 lpfc_ncmd->ts_cmd_start = start; in lpfc_nvme_fcp_io_submit()
1686 lpfc_ncmd->ts_last_cmd = phba->ktime_last_cmd; in lpfc_nvme_fcp_io_submit()
1688 lpfc_ncmd->ts_cmd_start = 0; in lpfc_nvme_fcp_io_submit()
1691 lpfc_ncmd->rx_cmd_start = start; in lpfc_nvme_fcp_io_submit()
1699 freqpriv->nvme_buf = lpfc_ncmd; in lpfc_nvme_fcp_io_submit()
1700 lpfc_ncmd->nvmeCmd = pnvme_fcreq; in lpfc_nvme_fcp_io_submit()
1701 lpfc_ncmd->ndlp = ndlp; in lpfc_nvme_fcp_io_submit()
1702 lpfc_ncmd->qidx = lpfc_queue_info->qidx; in lpfc_nvme_fcp_io_submit()
1724 &lpfc_ncmd->cur_iocbq.vmid_tag); in lpfc_nvme_fcp_io_submit()
1726 lpfc_ncmd->cur_iocbq.cmd_flag |= LPFC_IO_VMID; in lpfc_nvme_fcp_io_submit()
1739 lpfc_ncmd->cur_iocbq.hba_wqidx = idx; in lpfc_nvme_fcp_io_submit()
1742 lpfc_nvme_prep_io_cmd(vport, lpfc_ncmd, ndlp, cstat); in lpfc_nvme_fcp_io_submit()
1743 ret = lpfc_nvme_prep_io_dma(vport, lpfc_ncmd); in lpfc_nvme_fcp_io_submit()
1755 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_nvme_fcp_io_submit()
1758 ret = lpfc_sli4_issue_wqe(phba, lpfc_ncmd->hdwq, &lpfc_ncmd->cur_iocbq); in lpfc_nvme_fcp_io_submit()
1765 lpfc_ncmd->cur_iocbq.sli4_xritag); in lpfc_nvme_fcp_io_submit()
1770 lpfc_keep_pvt_pool_above_lowwm(phba, lpfc_ncmd->hdwq_no); in lpfc_nvme_fcp_io_submit()
1773 if (lpfc_ncmd->ts_cmd_start) in lpfc_nvme_fcp_io_submit()
1774 lpfc_ncmd->ts_cmd_wqput = ktime_get_ns(); in lpfc_nvme_fcp_io_submit()
1779 lpfc_ncmd->cpu = cpu; in lpfc_nvme_fcp_io_submit()
1785 lpfc_ncmd->cpu, in lpfc_nvme_fcp_io_submit()
1792 if (lpfc_ncmd->nvmeCmd->sg_cnt) { in lpfc_nvme_fcp_io_submit()
1793 if (lpfc_ncmd->nvmeCmd->io_dir == NVMEFC_FCP_WRITE) in lpfc_nvme_fcp_io_submit()
1799 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_fcp_io_submit()
2042 struct lpfc_io_buf *lpfc_ncmd; in lpfc_get_nvme_buf() local
2048 lpfc_ncmd = lpfc_get_io_buf(phba, NULL, idx, expedite); in lpfc_get_nvme_buf()
2050 if (lpfc_ncmd) { in lpfc_get_nvme_buf()
2051 pwqeq = &(lpfc_ncmd->cur_iocbq); in lpfc_get_nvme_buf()
2059 lpfc_ncmd->start_time = jiffies; in lpfc_get_nvme_buf()
2060 lpfc_ncmd->flags = 0; in lpfc_get_nvme_buf()
2066 sgl = lpfc_ncmd->dma_sgl; in lpfc_get_nvme_buf()
2077 lpfc_ncmd->flags |= LPFC_SBUF_BUMP_QDEPTH; in lpfc_get_nvme_buf()
2085 return lpfc_ncmd; in lpfc_get_nvme_buf()
2099 lpfc_release_nvme_buf(struct lpfc_hba *phba, struct lpfc_io_buf *lpfc_ncmd) in lpfc_release_nvme_buf() argument
2104 if ((lpfc_ncmd->flags & LPFC_SBUF_BUMP_QDEPTH) && lpfc_ncmd->ndlp) in lpfc_release_nvme_buf()
2105 atomic_dec(&lpfc_ncmd->ndlp->cmd_pending); in lpfc_release_nvme_buf()
2107 lpfc_ncmd->ndlp = NULL; in lpfc_release_nvme_buf()
2108 lpfc_ncmd->flags &= ~LPFC_SBUF_BUMP_QDEPTH; in lpfc_release_nvme_buf()
2110 qp = lpfc_ncmd->hdwq; in lpfc_release_nvme_buf()
2111 if (unlikely(lpfc_ncmd->flags & LPFC_SBUF_XBUSY)) { in lpfc_release_nvme_buf()
2115 lpfc_ncmd->cur_iocbq.sli4_xritag, in lpfc_release_nvme_buf()
2116 lpfc_ncmd->cur_iocbq.iotag); in lpfc_release_nvme_buf()
2119 list_add_tail(&lpfc_ncmd->list, in lpfc_release_nvme_buf()
2124 lpfc_release_io_buf(phba, (struct lpfc_io_buf *)lpfc_ncmd, qp); in lpfc_release_nvme_buf()
2681 struct lpfc_io_buf *lpfc_ncmd) in lpfc_sli4_nvme_pci_offline_aborted() argument
2688 lpfc_ncmd->nvmeCmd, in lpfc_sli4_nvme_pci_offline_aborted()
2689 lpfc_ncmd->cur_iocbq.iotag); in lpfc_sli4_nvme_pci_offline_aborted()
2695 if (lpfc_ncmd->nvmeCmd) { in lpfc_sli4_nvme_pci_offline_aborted()
2696 nvme_cmd = lpfc_ncmd->nvmeCmd; in lpfc_sli4_nvme_pci_offline_aborted()
2701 lpfc_ncmd->nvmeCmd = NULL; in lpfc_sli4_nvme_pci_offline_aborted()
2703 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_sli4_nvme_pci_offline_aborted()
2719 struct lpfc_io_buf *lpfc_ncmd) in lpfc_sli4_nvme_xri_aborted() argument
2723 struct lpfc_nodelist *ndlp = lpfc_ncmd->ndlp; in lpfc_sli4_nvme_xri_aborted()
2732 lpfc_ncmd->nvmeCmd, xri, in lpfc_sli4_nvme_xri_aborted()
2733 lpfc_ncmd->cur_iocbq.iotag); in lpfc_sli4_nvme_xri_aborted()
2739 if (lpfc_ncmd->nvmeCmd) { in lpfc_sli4_nvme_xri_aborted()
2740 nvme_cmd = lpfc_ncmd->nvmeCmd; in lpfc_sli4_nvme_xri_aborted()
2742 lpfc_ncmd->nvmeCmd = NULL; in lpfc_sli4_nvme_xri_aborted()
2744 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_sli4_nvme_xri_aborted()
2803 struct lpfc_io_buf *lpfc_ncmd; in lpfc_nvme_cancel_iocb() local
2808 lpfc_ncmd = pwqeIn->io_buf; in lpfc_nvme_cancel_iocb()
2809 if (!lpfc_ncmd) { in lpfc_nvme_cancel_iocb()
2820 spin_lock(&lpfc_ncmd->buf_lock); in lpfc_nvme_cancel_iocb()
2821 nCmd = lpfc_ncmd->nvmeCmd; in lpfc_nvme_cancel_iocb()
2823 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_cancel_iocb()
2824 lpfc_release_nvme_buf(phba, lpfc_ncmd); in lpfc_nvme_cancel_iocb()
2827 spin_unlock(&lpfc_ncmd->buf_lock); in lpfc_nvme_cancel_iocb()
2831 lpfc_ncmd->cur_iocbq.sli4_xritag); in lpfc_nvme_cancel_iocb()