Lines Matching refs:wr
676 static int siw_sq_flush_wr(struct siw_qp *qp, const struct ib_send_wr *wr, in siw_sq_flush_wr() argument
681 while (wr) { in siw_sq_flush_wr()
684 switch (wr->opcode) { in siw_sq_flush_wr()
714 sqe.id = wr->wr_id; in siw_sq_flush_wr()
720 *bad_wr = wr; in siw_sq_flush_wr()
723 wr = wr->next; in siw_sq_flush_wr()
729 static int siw_rq_flush_wr(struct siw_qp *qp, const struct ib_recv_wr *wr, in siw_rq_flush_wr() argument
735 while (wr) { in siw_rq_flush_wr()
736 rqe.id = wr->wr_id; in siw_rq_flush_wr()
740 *bad_wr = wr; in siw_rq_flush_wr()
743 wr = wr->next; in siw_rq_flush_wr()
757 int siw_post_send(struct ib_qp *base_qp, const struct ib_send_wr *wr, in siw_post_send() argument
766 if (wr && !rdma_is_kernel_res(&qp->base_qp.res)) { in siw_post_send()
768 *bad_wr = wr; in siw_post_send()
787 rv = siw_sq_flush_wr(qp, wr, bad_wr); in siw_post_send()
791 *bad_wr = wr; in siw_post_send()
805 rv = siw_sq_flush_wr(qp, wr, bad_wr); in siw_post_send()
809 *bad_wr = wr; in siw_post_send()
817 while (wr) { in siw_post_send()
826 if (wr->num_sge > qp->attrs.sq_max_sges) { in siw_post_send()
827 siw_dbg_qp(qp, "too many sge's: %d\n", wr->num_sge); in siw_post_send()
831 sqe->id = wr->wr_id; in siw_post_send()
833 if ((wr->send_flags & IB_SEND_SIGNALED) || in siw_post_send()
837 if (wr->send_flags & IB_SEND_FENCE) in siw_post_send()
840 switch (wr->opcode) { in siw_post_send()
843 if (wr->send_flags & IB_SEND_SOLICITED) in siw_post_send()
846 if (!(wr->send_flags & IB_SEND_INLINE)) { in siw_post_send()
847 siw_copy_sgl(wr->sg_list, sqe->sge, in siw_post_send()
848 wr->num_sge); in siw_post_send()
849 sqe->num_sge = wr->num_sge; in siw_post_send()
851 rv = siw_copy_inline_sgl(wr, sqe); in siw_post_send()
859 if (wr->opcode == IB_WR_SEND) in siw_post_send()
863 sqe->rkey = wr->ex.invalidate_rkey; in siw_post_send()
876 if (unlikely(wr->num_sge != 1)) { in siw_post_send()
880 siw_copy_sgl(wr->sg_list, &sqe->sge[0], 1); in siw_post_send()
884 sqe->raddr = rdma_wr(wr)->remote_addr; in siw_post_send()
885 sqe->rkey = rdma_wr(wr)->rkey; in siw_post_send()
888 if (wr->opcode == IB_WR_RDMA_READ) in siw_post_send()
895 if (!(wr->send_flags & IB_SEND_INLINE)) { in siw_post_send()
896 siw_copy_sgl(wr->sg_list, &sqe->sge[0], in siw_post_send()
897 wr->num_sge); in siw_post_send()
898 sqe->num_sge = wr->num_sge; in siw_post_send()
900 rv = siw_copy_inline_sgl(wr, sqe); in siw_post_send()
908 sqe->raddr = rdma_wr(wr)->remote_addr; in siw_post_send()
909 sqe->rkey = rdma_wr(wr)->rkey; in siw_post_send()
914 sqe->base_mr = (uintptr_t)reg_wr(wr)->mr; in siw_post_send()
915 sqe->rkey = reg_wr(wr)->key; in siw_post_send()
916 sqe->access = reg_wr(wr)->access & IWARP_ACCESS_MASK; in siw_post_send()
921 sqe->rkey = wr->ex.invalidate_rkey; in siw_post_send()
927 wr->opcode); in siw_post_send()
943 wr = wr->next; in siw_post_send()
984 *bad_wr = wr; in siw_post_send()
997 int siw_post_receive(struct ib_qp *base_qp, const struct ib_recv_wr *wr, in siw_post_receive() argument
1005 *bad_wr = wr; in siw_post_receive()
1010 *bad_wr = wr; in siw_post_receive()
1029 rv = siw_rq_flush_wr(qp, wr, bad_wr); in siw_post_receive()
1033 *bad_wr = wr; in siw_post_receive()
1047 rv = siw_rq_flush_wr(qp, wr, bad_wr); in siw_post_receive()
1051 *bad_wr = wr; in siw_post_receive()
1063 while (wr) { in siw_post_receive()
1072 if (wr->num_sge > qp->attrs.rq_max_sges) { in siw_post_receive()
1073 siw_dbg_qp(qp, "too many sge's: %d\n", wr->num_sge); in siw_post_receive()
1077 rqe->id = wr->wr_id; in siw_post_receive()
1078 rqe->num_sge = wr->num_sge; in siw_post_receive()
1079 siw_copy_sgl(wr->sg_list, rqe->sge, wr->num_sge); in siw_post_receive()
1087 wr = wr->next; in siw_post_receive()
1095 *bad_wr = wr; in siw_post_receive()
1769 int siw_post_srq_recv(struct ib_srq *base_srq, const struct ib_recv_wr *wr, in siw_post_srq_recv() argument
1789 while (wr) { in siw_post_srq_recv()
1798 if (unlikely(wr->num_sge > srq->max_sge)) { in siw_post_srq_recv()
1800 "[SRQ]: too many sge's: %d\n", wr->num_sge); in siw_post_srq_recv()
1804 rqe->id = wr->wr_id; in siw_post_srq_recv()
1805 rqe->num_sge = wr->num_sge; in siw_post_srq_recv()
1806 siw_copy_sgl(wr->sg_list, rqe->sge, wr->num_sge); in siw_post_srq_recv()
1814 wr = wr->next; in siw_post_srq_recv()
1820 *bad_wr = wr; in siw_post_srq_recv()