• Home
  • Raw
  • Download

Lines Matching full:resp

61 		rxe_sched_task(&qp->resp.task);  in rxe_resp_queue_pkt()
63 rxe_run_task(&qp->resp.task); in rxe_resp_queue_pkt()
77 return (qp->resp.res) ? RESPST_READ_REPLY : RESPST_CHK_PSN; in get_req()
83 int diff = psn_compare(pkt->psn, qp->resp.psn); in check_psn()
89 if (qp->resp.sent_psn_nak) in check_psn()
92 qp->resp.sent_psn_nak = 1; in check_psn()
101 if (qp->resp.sent_psn_nak) in check_psn()
102 qp->resp.sent_psn_nak = 0; in check_psn()
107 if (qp->resp.drop_msg || diff != 0) { in check_psn()
109 qp->resp.drop_msg = 0; in check_psn()
113 qp->resp.drop_msg = 1; in check_psn()
129 switch (qp->resp.opcode) { in check_op_seq()
170 switch (qp->resp.opcode) { in check_op_seq()
201 qp->resp.drop_msg = 1; in check_op_seq()
251 qp->resp.drop_msg = 1; in check_op_valid()
297 memcpy(&qp->resp.srq_wqe, wqe, size); in get_srq_wqe()
299 qp->resp.wqe = &qp->resp.srq_wqe.wqe; in get_srq_wqe()
340 qp->resp.wqe = queue_head(qp->rq.queue, in check_resource()
342 return (qp->resp.wqe) ? RESPST_CHK_LENGTH : RESPST_ERR_RNR; in check_resource()
362 for (i = 0; i < qp->resp.wqe->dma.num_sge; i++) in rxe_resp_check_length()
363 recv_buffer_len += qp->resp.wqe->dma.sge[i].length; in rxe_resp_check_length()
411 * Instead set qp->resp.rkey to 0 which is an invalid rkey
418 qp->resp.va = reth_va(pkt); in qp_resp_from_reth()
419 qp->resp.offset = 0; in qp_resp_from_reth()
420 qp->resp.resid = length; in qp_resp_from_reth()
421 qp->resp.length = length; in qp_resp_from_reth()
423 qp->resp.rkey = 0; in qp_resp_from_reth()
425 qp->resp.rkey = reth_rkey(pkt); in qp_resp_from_reth()
430 qp->resp.va = atmeth_va(pkt); in qp_resp_from_atmeth()
431 qp->resp.offset = 0; in qp_resp_from_atmeth()
432 qp->resp.rkey = atmeth_rkey(pkt); in qp_resp_from_atmeth()
433 qp->resp.resid = sizeof(u64); in qp_resp_from_atmeth()
436 /* resolve the packet rkey to qp->resp.mr or set qp->resp.mr to NULL
486 qp->resp.mr = NULL; in check_rkey()
490 va = qp->resp.va; in check_rkey()
491 rkey = qp->resp.rkey; in check_rkey()
492 resid = qp->resp.resid; in check_rkey()
511 qp->resp.offset = mw->addr; in check_rkey()
533 if (mr_check_range(mr, va + qp->resp.offset, resid)) { in check_rkey()
560 WARN_ON_ONCE(qp->resp.mr); in check_rkey()
562 qp->resp.mr = mr; in check_rkey()
566 qp->resp.mr = NULL; in check_rkey()
580 err = copy_data(qp->pd, IB_ACCESS_LOCAL_WRITE, &qp->resp.wqe->dma, in send_data_in()
596 err = rxe_mr_copy(qp->resp.mr, qp->resp.va + qp->resp.offset, in write_data_in()
603 qp->resp.va += data_len; in write_data_in()
604 qp->resp.resid -= data_len; in write_data_in()
617 res = &qp->resp.resources[qp->resp.res_head]; in rxe_prepare_res()
626 res->read.va = qp->resp.va + qp->resp.offset; in rxe_prepare_res()
627 res->read.va_org = qp->resp.va + qp->resp.offset; in rxe_prepare_res()
628 res->read.resid = qp->resp.resid; in rxe_prepare_res()
629 res->read.length = qp->resp.resid; in rxe_prepare_res()
630 res->read.rkey = qp->resp.rkey; in rxe_prepare_res()
646 res->flush.va = qp->resp.va + qp->resp.offset; in rxe_prepare_res()
647 res->flush.length = qp->resp.length; in rxe_prepare_res()
659 struct rxe_mr *mr = qp->resp.mr; in process_flush()
660 struct resp_res *res = qp->resp.res; in process_flush()
667 qp->resp.res = res; in process_flush()
688 qp->resp.msn++; in process_flush()
691 qp->resp.psn = (pkt->psn + 1) & BTH_PSN_MASK; in process_flush()
692 qp->resp.ack_psn = qp->resp.psn; in process_flush()
694 qp->resp.opcode = pkt->opcode; in process_flush()
695 qp->resp.status = IB_WC_SUCCESS; in process_flush()
703 struct rxe_mr *mr = qp->resp.mr; in atomic_reply()
704 struct resp_res *res = qp->resp.res; in atomic_reply()
709 qp->resp.res = res; in atomic_reply()
713 u64 iova = qp->resp.va + qp->resp.offset; in atomic_reply()
722 qp->resp.msn++; in atomic_reply()
725 qp->resp.psn = (pkt->psn + 1) & BTH_PSN_MASK; in atomic_reply()
726 qp->resp.ack_psn = qp->resp.psn; in atomic_reply()
728 qp->resp.opcode = pkt->opcode; in atomic_reply()
729 qp->resp.status = IB_WC_SUCCESS; in atomic_reply()
738 struct resp_res *res = qp->resp.res; in atomic_write_reply()
746 qp->resp.res = res; in atomic_write_reply()
752 mr = qp->resp.mr; in atomic_write_reply()
754 iova = qp->resp.va + qp->resp.offset; in atomic_write_reply()
760 qp->resp.resid = 0; in atomic_write_reply()
761 qp->resp.msn++; in atomic_write_reply()
764 qp->resp.psn = (pkt->psn + 1) & BTH_PSN_MASK; in atomic_write_reply()
765 qp->resp.ack_psn = qp->resp.psn; in atomic_write_reply()
767 qp->resp.opcode = pkt->opcode; in atomic_write_reply()
768 qp->resp.status = IB_WC_SUCCESS; in atomic_write_reply()
807 aeth_set_msn(ack, qp->resp.msn); in prepare_ack_packet()
811 atmack_set_orig(ack, qp->resp.res->atomic.orig_val); in prepare_ack_packet()
888 struct resp_res *res = qp->resp.res; in read_reply()
893 qp->resp.res = res; in read_reply()
897 if (!res->replay || qp->resp.length == 0) { in read_reply()
899 * otherwise qp->resp.mr holds a ref on mr in read_reply()
902 mr = qp->resp.mr; in read_reply()
903 qp->resp.mr = NULL; in read_reply()
968 qp->resp.res = NULL; in read_reply()
970 qp->resp.opcode = -1; in read_reply()
971 if (psn_compare(res->cur_psn, qp->resp.psn) >= 0) in read_reply()
972 qp->resp.psn = res->cur_psn; in read_reply()
1024 qp->resp.msn++; in execute()
1047 qp->resp.msn++; in execute()
1050 qp->resp.psn = (pkt->psn + 1) & BTH_PSN_MASK; in execute()
1051 qp->resp.ack_psn = qp->resp.psn; in execute()
1053 qp->resp.opcode = pkt->opcode; in execute()
1054 qp->resp.status = IB_WC_SUCCESS; in execute()
1070 struct rxe_recv_wqe *wqe = qp->resp.wqe; in do_complete()
1080 uwc->status = qp->resp.status; in do_complete()
1084 wc->status = qp->resp.status; in do_complete()
1096 qp->resp.length : wqe->dma.length - wqe->dma.resid; in do_complete()
1157 qp->resp.wqe = NULL; in do_complete()
1211 qp->resp.res = NULL; in send_atomic_ack()
1224 qp->resp.res = NULL; in send_read_response_ack()
1234 if (qp->resp.aeth_syndrome != AETH_ACK_UNLIMITED) in acknowledge()
1235 send_ack(qp, qp->resp.aeth_syndrome, pkt->psn); in acknowledge()
1258 if (qp->resp.mr) { in cleanup()
1259 rxe_put(qp->resp.mr); in cleanup()
1260 qp->resp.mr = NULL; in cleanup()
1271 struct resp_res *res = &qp->resp.resources[i]; in find_resource()
1289 u32 prev_psn = (qp->resp.ack_psn - 1) & BTH_PSN_MASK; in duplicate_request()
1304 qp->resp.res = res; in duplicate_request()
1354 qp->resp.res = res; in duplicate_request()
1366 qp->resp.res = res; in duplicate_request()
1385 qp->resp.aeth_syndrome = syndrome; in do_class_ac_error()
1386 qp->resp.status = status; in do_class_ac_error()
1389 qp->resp.goto_error = 1; in do_class_ac_error()
1397 qp->resp.drop_msg = 1; in do_class_d1e_error()
1398 if (qp->resp.wqe) { in do_class_d1e_error()
1399 qp->resp.status = IB_WC_REM_INV_REQ_ERR; in do_class_d1e_error()
1410 if (qp->resp.wqe) { in do_class_d1e_error()
1411 qp->resp.wqe->dma.resid = qp->resp.wqe->dma.length; in do_class_d1e_error()
1412 qp->resp.wqe->dma.cur_sge = 0; in do_class_d1e_error()
1413 qp->resp.wqe->dma.sge_offset = 0; in do_class_d1e_error()
1414 qp->resp.opcode = -1; in do_class_d1e_error()
1417 if (qp->resp.mr) { in do_class_d1e_error()
1418 rxe_put(qp->resp.mr); in do_class_d1e_error()
1419 qp->resp.mr = NULL; in do_class_d1e_error()
1498 qp->resp.wqe = NULL; in flush_recv_queue()
1521 qp->resp.aeth_syndrome = AETH_ACK_UNLIMITED; in rxe_responder()
1578 send_ack(qp, AETH_NAK_PSN_SEQ_ERROR, qp->resp.psn); in rxe_responder()
1606 qp->resp.drop_msg = 1; in rxe_responder()
1618 qp->resp.drop_msg = 1; in rxe_responder()
1621 qp->resp.status = IB_WC_REM_ACCESS_ERR; in rxe_responder()
1632 qp->resp.goto_error = 1; in rxe_responder()
1633 qp->resp.status = IB_WC_REM_INV_REQ_ERR; in rxe_responder()
1645 qp->resp.status = IB_WC_REM_INV_REQ_ERR; in rxe_responder()
1649 qp->resp.drop_msg = 1; in rxe_responder()
1667 if (qp->resp.goto_error) { in rxe_responder()
1675 if (qp->resp.goto_error) { in rxe_responder()
1683 qp->resp.goto_error = 0; in rxe_responder()