Lines Matching refs:wr
674 static int siw_sq_flush_wr(struct siw_qp *qp, const struct ib_send_wr *wr, in siw_sq_flush_wr() argument
679 while (wr) { in siw_sq_flush_wr()
682 switch (wr->opcode) { in siw_sq_flush_wr()
712 sqe.id = wr->wr_id; in siw_sq_flush_wr()
718 *bad_wr = wr; in siw_sq_flush_wr()
721 wr = wr->next; in siw_sq_flush_wr()
727 static int siw_rq_flush_wr(struct siw_qp *qp, const struct ib_recv_wr *wr, in siw_rq_flush_wr() argument
733 while (wr) { in siw_rq_flush_wr()
734 rqe.id = wr->wr_id; in siw_rq_flush_wr()
738 *bad_wr = wr; in siw_rq_flush_wr()
741 wr = wr->next; in siw_rq_flush_wr()
755 int siw_post_send(struct ib_qp *base_qp, const struct ib_send_wr *wr, in siw_post_send() argument
764 if (wr && !rdma_is_kernel_res(&qp->base_qp.res)) { in siw_post_send()
766 *bad_wr = wr; in siw_post_send()
785 rv = siw_sq_flush_wr(qp, wr, bad_wr); in siw_post_send()
789 *bad_wr = wr; in siw_post_send()
803 rv = siw_sq_flush_wr(qp, wr, bad_wr); in siw_post_send()
807 *bad_wr = wr; in siw_post_send()
815 while (wr) { in siw_post_send()
824 if (wr->num_sge > qp->attrs.sq_max_sges) { in siw_post_send()
825 siw_dbg_qp(qp, "too many sge's: %d\n", wr->num_sge); in siw_post_send()
829 sqe->id = wr->wr_id; in siw_post_send()
831 if ((wr->send_flags & IB_SEND_SIGNALED) || in siw_post_send()
835 if (wr->send_flags & IB_SEND_FENCE) in siw_post_send()
838 switch (wr->opcode) { in siw_post_send()
841 if (wr->send_flags & IB_SEND_SOLICITED) in siw_post_send()
844 if (!(wr->send_flags & IB_SEND_INLINE)) { in siw_post_send()
845 siw_copy_sgl(wr->sg_list, sqe->sge, in siw_post_send()
846 wr->num_sge); in siw_post_send()
847 sqe->num_sge = wr->num_sge; in siw_post_send()
849 rv = siw_copy_inline_sgl(wr, sqe); in siw_post_send()
857 if (wr->opcode == IB_WR_SEND) in siw_post_send()
861 sqe->rkey = wr->ex.invalidate_rkey; in siw_post_send()
874 if (unlikely(wr->num_sge != 1)) { in siw_post_send()
878 siw_copy_sgl(wr->sg_list, &sqe->sge[0], 1); in siw_post_send()
882 sqe->raddr = rdma_wr(wr)->remote_addr; in siw_post_send()
883 sqe->rkey = rdma_wr(wr)->rkey; in siw_post_send()
886 if (wr->opcode == IB_WR_RDMA_READ) in siw_post_send()
893 if (!(wr->send_flags & IB_SEND_INLINE)) { in siw_post_send()
894 siw_copy_sgl(wr->sg_list, &sqe->sge[0], in siw_post_send()
895 wr->num_sge); in siw_post_send()
896 sqe->num_sge = wr->num_sge; in siw_post_send()
898 rv = siw_copy_inline_sgl(wr, sqe); in siw_post_send()
906 sqe->raddr = rdma_wr(wr)->remote_addr; in siw_post_send()
907 sqe->rkey = rdma_wr(wr)->rkey; in siw_post_send()
912 sqe->base_mr = (uintptr_t)reg_wr(wr)->mr; in siw_post_send()
913 sqe->rkey = reg_wr(wr)->key; in siw_post_send()
914 sqe->access = reg_wr(wr)->access & IWARP_ACCESS_MASK; in siw_post_send()
919 sqe->rkey = wr->ex.invalidate_rkey; in siw_post_send()
925 wr->opcode); in siw_post_send()
941 wr = wr->next; in siw_post_send()
982 *bad_wr = wr; in siw_post_send()
995 int siw_post_receive(struct ib_qp *base_qp, const struct ib_recv_wr *wr, in siw_post_receive() argument
1003 *bad_wr = wr; in siw_post_receive()
1008 *bad_wr = wr; in siw_post_receive()
1027 rv = siw_rq_flush_wr(qp, wr, bad_wr); in siw_post_receive()
1031 *bad_wr = wr; in siw_post_receive()
1045 rv = siw_rq_flush_wr(qp, wr, bad_wr); in siw_post_receive()
1049 *bad_wr = wr; in siw_post_receive()
1061 while (wr) { in siw_post_receive()
1070 if (wr->num_sge > qp->attrs.rq_max_sges) { in siw_post_receive()
1071 siw_dbg_qp(qp, "too many sge's: %d\n", wr->num_sge); in siw_post_receive()
1075 rqe->id = wr->wr_id; in siw_post_receive()
1076 rqe->num_sge = wr->num_sge; in siw_post_receive()
1077 siw_copy_sgl(wr->sg_list, rqe->sge, wr->num_sge); in siw_post_receive()
1085 wr = wr->next; in siw_post_receive()
1093 *bad_wr = wr; in siw_post_receive()
1767 int siw_post_srq_recv(struct ib_srq *base_srq, const struct ib_recv_wr *wr, in siw_post_srq_recv() argument
1787 while (wr) { in siw_post_srq_recv()
1796 if (unlikely(wr->num_sge > srq->max_sge)) { in siw_post_srq_recv()
1798 "[SRQ]: too many sge's: %d\n", wr->num_sge); in siw_post_srq_recv()
1802 rqe->id = wr->wr_id; in siw_post_srq_recv()
1803 rqe->num_sge = wr->num_sge; in siw_post_srq_recv()
1804 siw_copy_sgl(wr->sg_list, rqe->sge, wr->num_sge); in siw_post_srq_recv()
1812 wr = wr->next; in siw_post_srq_recv()
1818 *bad_wr = wr; in siw_post_srq_recv()