Lines Matching refs:ibwr
212 static int post_one_recv(struct rxe_rq *rq, const struct ib_recv_wr *ibwr) in post_one_recv() argument
218 int num_sge = ibwr->num_sge; in post_one_recv()
232 length += ibwr->sg_list[i].length; in post_one_recv()
235 recv_wqe->wr_id = ibwr->wr_id; in post_one_recv()
238 memcpy(recv_wqe->dma.sge, ibwr->sg_list, in post_one_recv()
471 static int validate_send_wr(struct rxe_qp *qp, const struct ib_send_wr *ibwr, in validate_send_wr() argument
474 int num_sge = ibwr->num_sge; in validate_send_wr()
484 if (atomic_wr(ibwr)->remote_addr & 0x7) in validate_send_wr()
488 if (unlikely((ibwr->send_flags & IB_SEND_INLINE) && in validate_send_wr()
499 const struct ib_send_wr *ibwr) in init_send_wr() argument
501 wr->wr_id = ibwr->wr_id; in init_send_wr()
502 wr->num_sge = ibwr->num_sge; in init_send_wr()
503 wr->opcode = ibwr->opcode; in init_send_wr()
504 wr->send_flags = ibwr->send_flags; in init_send_wr()
509 wr->wr.ud.remote_qpn = ud_wr(ibwr)->remote_qpn; in init_send_wr()
510 wr->wr.ud.remote_qkey = ud_wr(ibwr)->remote_qkey; in init_send_wr()
512 wr->wr.ud.pkey_index = ud_wr(ibwr)->pkey_index; in init_send_wr()
514 wr->ex.imm_data = ibwr->ex.imm_data; in init_send_wr()
518 wr->ex.imm_data = ibwr->ex.imm_data; in init_send_wr()
522 wr->wr.rdma.remote_addr = rdma_wr(ibwr)->remote_addr; in init_send_wr()
523 wr->wr.rdma.rkey = rdma_wr(ibwr)->rkey; in init_send_wr()
526 wr->ex.imm_data = ibwr->ex.imm_data; in init_send_wr()
529 wr->ex.invalidate_rkey = ibwr->ex.invalidate_rkey; in init_send_wr()
534 atomic_wr(ibwr)->remote_addr; in init_send_wr()
536 atomic_wr(ibwr)->compare_add; in init_send_wr()
537 wr->wr.atomic.swap = atomic_wr(ibwr)->swap; in init_send_wr()
538 wr->wr.atomic.rkey = atomic_wr(ibwr)->rkey; in init_send_wr()
541 wr->ex.invalidate_rkey = ibwr->ex.invalidate_rkey; in init_send_wr()
544 wr->wr.reg.mr = reg_wr(ibwr)->mr; in init_send_wr()
545 wr->wr.reg.key = reg_wr(ibwr)->key; in init_send_wr()
546 wr->wr.reg.access = reg_wr(ibwr)->access; in init_send_wr()
554 static int init_send_wqe(struct rxe_qp *qp, const struct ib_send_wr *ibwr, in init_send_wqe() argument
558 int num_sge = ibwr->num_sge; in init_send_wqe()
563 init_send_wr(qp, &wqe->wr, ibwr); in init_send_wqe()
568 memcpy(&wqe->av, &to_rah(ud_wr(ibwr)->ah)->av, sizeof(wqe->av)); in init_send_wqe()
570 if (unlikely(ibwr->send_flags & IB_SEND_INLINE)) { in init_send_wqe()
573 sge = ibwr->sg_list; in init_send_wqe()
585 memcpy(wqe->dma.sge, ibwr->sg_list, in init_send_wqe()
588 wqe->iova = mask & WR_ATOMIC_MASK ? atomic_wr(ibwr)->remote_addr : in init_send_wqe()
589 mask & WR_READ_OR_WRITE_MASK ? rdma_wr(ibwr)->remote_addr : 0; in init_send_wqe()
602 static int post_one_send(struct rxe_qp *qp, const struct ib_send_wr *ibwr, in post_one_send() argument
610 err = validate_send_wr(qp, ibwr, mask, length); in post_one_send()
623 err = init_send_wqe(qp, ibwr, mask, length, send_wqe); in post_one_send()