Lines Matching full:resp
94 rxe_run_task(&qp->resp.task, must_sched); in rxe_resp_queue_pkt()
102 if (qp->resp.state == QP_STATE_ERROR) { in get_req()
119 return (qp->resp.res) ? RESPST_READ_REPLY : RESPST_CHK_PSN; in get_req()
125 int diff = psn_compare(pkt->psn, qp->resp.psn); in check_psn()
131 if (qp->resp.sent_psn_nak) in check_psn()
134 qp->resp.sent_psn_nak = 1; in check_psn()
143 if (qp->resp.sent_psn_nak) in check_psn()
144 qp->resp.sent_psn_nak = 0; in check_psn()
149 if (qp->resp.drop_msg || diff != 0) { in check_psn()
151 qp->resp.drop_msg = 0; in check_psn()
155 qp->resp.drop_msg = 1; in check_psn()
171 switch (qp->resp.opcode) { in check_op_seq()
212 switch (qp->resp.opcode) { in check_op_seq()
243 qp->resp.drop_msg = 1; in check_op_seq()
275 qp->resp.drop_msg = 1; in check_op_valid()
321 memcpy(&qp->resp.srq_wqe, wqe, size); in get_srq_wqe()
323 qp->resp.wqe = &qp->resp.srq_wqe.wqe; in get_srq_wqe()
349 if (qp->resp.state == QP_STATE_ERROR) { in check_resource()
350 if (qp->resp.wqe) { in check_resource()
351 qp->resp.status = IB_WC_WR_FLUSH_ERR; in check_resource()
354 qp->resp.wqe = queue_head(qp->rq.queue, in check_resource()
356 if (qp->resp.wqe) { in check_resource()
357 qp->resp.status = IB_WC_WR_FLUSH_ERR; in check_resource()
382 qp->resp.wqe = queue_head(qp->rq.queue, in check_resource()
384 return (qp->resp.wqe) ? RESPST_CHK_LENGTH : RESPST_ERR_RNR; in check_resource()
420 qp->resp.va = reth_va(pkt); in check_rkey()
421 qp->resp.offset = 0; in check_rkey()
422 qp->resp.rkey = reth_rkey(pkt); in check_rkey()
423 qp->resp.resid = reth_len(pkt); in check_rkey()
424 qp->resp.length = reth_len(pkt); in check_rkey()
429 qp->resp.va = atmeth_va(pkt); in check_rkey()
430 qp->resp.offset = 0; in check_rkey()
431 qp->resp.rkey = atmeth_rkey(pkt); in check_rkey()
432 qp->resp.resid = sizeof(u64); in check_rkey()
445 va = qp->resp.va; in check_rkey()
446 rkey = qp->resp.rkey; in check_rkey()
447 resid = qp->resp.resid; in check_rkey()
467 qp->resp.offset = mw->addr; in check_rkey()
481 if (mr_check_range(mr, va + qp->resp.offset, resid)) { in check_rkey()
507 WARN_ON_ONCE(qp->resp.mr); in check_rkey()
509 qp->resp.mr = mr; in check_rkey()
526 err = copy_data(qp->pd, IB_ACCESS_LOCAL_WRITE, &qp->resp.wqe->dma, in send_data_in()
542 err = rxe_mr_copy(qp->resp.mr, qp->resp.va + qp->resp.offset, in write_data_in()
549 qp->resp.va += data_len; in write_data_in()
550 qp->resp.resid -= data_len; in write_data_in()
563 res = &qp->resp.resources[qp->resp.res_head]; in rxe_prepare_res()
572 res->read.va = qp->resp.va + qp->resp.offset; in rxe_prepare_res()
573 res->read.va_org = qp->resp.va + qp->resp.offset; in rxe_prepare_res()
574 res->read.resid = qp->resp.resid; in rxe_prepare_res()
575 res->read.length = qp->resp.resid; in rxe_prepare_res()
576 res->read.rkey = qp->resp.rkey; in rxe_prepare_res()
603 struct rxe_mr *mr = qp->resp.mr; in atomic_reply()
604 struct resp_res *res = qp->resp.res; in atomic_reply()
609 qp->resp.res = res; in atomic_reply()
618 vaddr = iova_to_vaddr(mr, qp->resp.va + qp->resp.offset, in atomic_reply()
640 qp->resp.msn++; in atomic_reply()
643 qp->resp.psn = (pkt->psn + 1) & BTH_PSN_MASK; in atomic_reply()
644 qp->resp.ack_psn = qp->resp.psn; in atomic_reply()
646 qp->resp.opcode = pkt->opcode; in atomic_reply()
647 qp->resp.status = IB_WC_SUCCESS; in atomic_reply()
689 aeth_set_msn(ack, qp->resp.msn); in prepare_ack_packet()
693 atmack_set_orig(ack, qp->resp.res->atomic.orig_val); in prepare_ack_packet()
770 struct resp_res *res = qp->resp.res; in read_reply()
775 qp->resp.res = res; in read_reply()
780 mr = qp->resp.mr; in read_reply()
781 qp->resp.mr = NULL; in read_reply()
836 qp->resp.res = NULL; in read_reply()
838 qp->resp.opcode = -1; in read_reply()
839 if (psn_compare(res->cur_psn, qp->resp.psn) >= 0) in read_reply()
840 qp->resp.psn = res->cur_psn; in read_reply()
889 qp->resp.msn++; in execute()
908 qp->resp.msn++; in execute()
911 qp->resp.psn = (pkt->psn + 1) & BTH_PSN_MASK; in execute()
912 qp->resp.ack_psn = qp->resp.psn; in execute()
914 qp->resp.opcode = pkt->opcode; in execute()
915 qp->resp.status = IB_WC_SUCCESS; in execute()
931 struct rxe_recv_wqe *wqe = qp->resp.wqe; in do_complete()
940 uwc->status = qp->resp.status; in do_complete()
944 wc->status = qp->resp.status; in do_complete()
956 qp->resp.length : wqe->dma.length - wqe->dma.resid; in do_complete()
1013 qp->resp.wqe = NULL; in do_complete()
1019 if (unlikely(qp->resp.state == QP_STATE_ERROR)) in do_complete()
1062 qp->resp.res = NULL; in send_atomic_ack()
1072 if (qp->resp.aeth_syndrome != AETH_ACK_UNLIMITED) in acknowledge()
1073 send_ack(qp, qp->resp.aeth_syndrome, pkt->psn); in acknowledge()
1094 if (qp->resp.mr) { in cleanup()
1095 rxe_put(qp->resp.mr); in cleanup()
1096 qp->resp.mr = NULL; in cleanup()
1107 struct resp_res *res = &qp->resp.resources[i]; in find_resource()
1125 u32 prev_psn = (qp->resp.ack_psn - 1) & BTH_PSN_MASK; in duplicate_request()
1174 qp->resp.res = res; in duplicate_request()
1186 qp->resp.res = res; in duplicate_request()
1203 qp->resp.aeth_syndrome = syndrome; in do_class_ac_error()
1204 qp->resp.status = status; in do_class_ac_error()
1207 qp->resp.goto_error = 1; in do_class_ac_error()
1215 qp->resp.drop_msg = 1; in do_class_d1e_error()
1216 if (qp->resp.wqe) { in do_class_d1e_error()
1217 qp->resp.status = IB_WC_REM_INV_REQ_ERR; in do_class_d1e_error()
1228 if (qp->resp.wqe) { in do_class_d1e_error()
1229 qp->resp.wqe->dma.resid = qp->resp.wqe->dma.length; in do_class_d1e_error()
1230 qp->resp.wqe->dma.cur_sge = 0; in do_class_d1e_error()
1231 qp->resp.wqe->dma.sge_offset = 0; in do_class_d1e_error()
1232 qp->resp.opcode = -1; in do_class_d1e_error()
1235 if (qp->resp.mr) { in do_class_d1e_error()
1236 rxe_put(qp->resp.mr); in do_class_d1e_error()
1237 qp->resp.mr = NULL; in do_class_d1e_error()
1273 qp->resp.aeth_syndrome = AETH_ACK_UNLIMITED; in rxe_responder()
1278 switch (qp->resp.state) { in rxe_responder()
1336 send_ack(qp, AETH_NAK_PSN_SEQ_ERROR, qp->resp.psn); in rxe_responder()
1364 qp->resp.drop_msg = 1; in rxe_responder()
1376 qp->resp.drop_msg = 1; in rxe_responder()
1379 qp->resp.status = IB_WC_REM_ACCESS_ERR; in rxe_responder()
1390 qp->resp.goto_error = 1; in rxe_responder()
1391 qp->resp.status = IB_WC_REM_INV_REQ_ERR; in rxe_responder()
1403 qp->resp.status = IB_WC_REM_INV_REQ_ERR; in rxe_responder()
1407 qp->resp.drop_msg = 1; in rxe_responder()
1425 if (qp->resp.goto_error) { in rxe_responder()
1433 if (qp->resp.goto_error) { in rxe_responder()
1442 qp->resp.wqe = NULL; in rxe_responder()
1446 qp->resp.goto_error = 0; in rxe_responder()