Lines Matching refs:ibwr

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