Lines Matching refs:ibwr

15 static int post_one_recv(struct rxe_rq *rq, const struct ib_recv_wr *ibwr);
665 static int validate_send_wr(struct rxe_qp *qp, const struct ib_send_wr *ibwr,
668 int num_sge = ibwr->num_sge;
676 mask = wr_opcode_mask(ibwr->opcode, qp);
688 for (i = 0; i < ibwr->num_sge; i++)
689 length += ibwr->sg_list[i].length;
701 if (atomic_wr(ibwr)->remote_addr & 0x7) {
706 if (ibwr->send_flags & IB_SEND_INLINE) {
727 const struct ib_send_wr *ibwr)
729 wr->wr_id = ibwr->wr_id;
730 wr->opcode = ibwr->opcode;
731 wr->send_flags = ibwr->send_flags;
735 struct ib_ah *ibah = ud_wr(ibwr)->ah;
737 wr->wr.ud.remote_qpn = ud_wr(ibwr)->remote_qpn;
738 wr->wr.ud.remote_qkey = ud_wr(ibwr)->remote_qkey;
741 wr->wr.ud.pkey_index = ud_wr(ibwr)->pkey_index;
745 wr->ex.imm_data = ibwr->ex.imm_data;
757 wr->ex.imm_data = ibwr->ex.imm_data;
761 wr->wr.rdma.remote_addr = rdma_wr(ibwr)->remote_addr;
762 wr->wr.rdma.rkey = rdma_wr(ibwr)->rkey;
765 wr->ex.imm_data = ibwr->ex.imm_data;
768 wr->ex.invalidate_rkey = ibwr->ex.invalidate_rkey;
771 wr->ex.invalidate_rkey = ibwr->ex.invalidate_rkey;
772 wr->wr.rdma.remote_addr = rdma_wr(ibwr)->remote_addr;
773 wr->wr.rdma.rkey = rdma_wr(ibwr)->rkey;
778 atomic_wr(ibwr)->remote_addr;
780 atomic_wr(ibwr)->compare_add;
781 wr->wr.atomic.swap = atomic_wr(ibwr)->swap;
782 wr->wr.atomic.rkey = atomic_wr(ibwr)->rkey;
785 wr->ex.invalidate_rkey = ibwr->ex.invalidate_rkey;
788 wr->wr.reg.mr = reg_wr(ibwr)->mr;
789 wr->wr.reg.key = reg_wr(ibwr)->key;
790 wr->wr.reg.access = reg_wr(ibwr)->access;
808 const struct ib_send_wr *ibwr)
810 struct ib_sge *sge = ibwr->sg_list;
814 for (i = 0; i < ibwr->num_sge; i++, sge++) {
820 static int init_send_wqe(struct rxe_qp *qp, const struct ib_send_wr *ibwr,
824 int num_sge = ibwr->num_sge;
827 err = init_send_wr(qp, &wqe->wr, ibwr);
838 if (unlikely(ibwr->send_flags & IB_SEND_INLINE))
839 copy_inline_data_to_wqe(wqe, ibwr);
841 memcpy(wqe->dma.sge, ibwr->sg_list,
844 wqe->iova = mask & WR_ATOMIC_MASK ? atomic_wr(ibwr)->remote_addr :
845 mask & WR_READ_OR_WRITE_MASK ? rdma_wr(ibwr)->remote_addr : 0;
858 static int post_one_send(struct rxe_qp *qp, const struct ib_send_wr *ibwr)
867 err = validate_send_wr(qp, ibwr, &mask, &length);
878 err = init_send_wqe(qp, ibwr, mask, length, send_wqe);
886 const struct ib_send_wr *ibwr,
893 while (ibwr) {
894 err = post_one_send(qp, ibwr);
896 *bad_wr = ibwr;
899 ibwr = ibwr->next;
950 static int post_one_recv(struct rxe_rq *rq, const struct ib_recv_wr *ibwr)
955 int num_sge = ibwr->num_sge;
974 length += ibwr->sg_list[i].length;
985 recv_wqe->wr_id = ibwr->wr_id;
991 memcpy(recv_wqe->dma.sge, ibwr->sg_list,