Lines Matching refs:wr

1997 				struct ib_send_wr *wr)  in ocrdma_build_ud_hdr()  argument
2001 struct ocrdma_ah *ah = get_ocrdma_ah(ud_wr(wr)->ah); in ocrdma_build_ud_hdr()
2003 ud_hdr->rsvd_dest_qpn = ud_wr(wr)->remote_qpn; in ocrdma_build_ud_hdr()
2007 ud_hdr->qkey = ud_wr(wr)->remote_qkey; in ocrdma_build_ud_hdr()
2043 struct ib_send_wr *wr, u32 wqe_size) in ocrdma_build_inline_sges() argument
2048 if (wr->send_flags & IB_SEND_INLINE && qp->qp_type != IB_QPT_UD) { in ocrdma_build_inline_sges()
2049 hdr->total_len = ocrdma_sglist_len(wr->sg_list, wr->num_sge); in ocrdma_build_inline_sges()
2057 for (i = 0; i < wr->num_sge; i++) { in ocrdma_build_inline_sges()
2059 (void *)(unsigned long)wr->sg_list[i].addr, in ocrdma_build_inline_sges()
2060 wr->sg_list[i].length); in ocrdma_build_inline_sges()
2061 dpp_addr += wr->sg_list[i].length; in ocrdma_build_inline_sges()
2069 ocrdma_build_sges(hdr, sge, wr->num_sge, wr->sg_list); in ocrdma_build_inline_sges()
2070 if (wr->num_sge) in ocrdma_build_inline_sges()
2071 wqe_size += (wr->num_sge * sizeof(struct ocrdma_sge)); in ocrdma_build_inline_sges()
2081 struct ib_send_wr *wr) in ocrdma_build_send() argument
2088 ocrdma_build_ud_hdr(qp, hdr, wr); in ocrdma_build_send()
2095 status = ocrdma_build_inline_sges(qp, hdr, sge, wr, wqe_size); in ocrdma_build_send()
2100 struct ib_send_wr *wr) in ocrdma_build_write() argument
2107 status = ocrdma_build_inline_sges(qp, hdr, sge, wr, wqe_size); in ocrdma_build_write()
2110 ext_rw->addr_lo = rdma_wr(wr)->remote_addr; in ocrdma_build_write()
2111 ext_rw->addr_hi = upper_32_bits(rdma_wr(wr)->remote_addr); in ocrdma_build_write()
2112 ext_rw->lrkey = rdma_wr(wr)->rkey; in ocrdma_build_write()
2118 struct ib_send_wr *wr) in ocrdma_build_read() argument
2122 u32 wqe_size = ((wr->num_sge + 1) * sizeof(struct ocrdma_sge)) + in ocrdma_build_read()
2125 ocrdma_build_sges(hdr, sge, wr->num_sge, wr->sg_list); in ocrdma_build_read()
2130 ext_rw->addr_lo = rdma_wr(wr)->remote_addr; in ocrdma_build_read()
2131 ext_rw->addr_hi = upper_32_bits(rdma_wr(wr)->remote_addr); in ocrdma_build_read()
2132 ext_rw->lrkey = rdma_wr(wr)->rkey; in ocrdma_build_read()
2148 struct ib_reg_wr *wr) in ocrdma_build_reg() argument
2152 struct ocrdma_mr *mr = get_ocrdma_mr(wr->mr); in ocrdma_build_reg()
2163 if (wr->access & IB_ACCESS_LOCAL_WRITE) in ocrdma_build_reg()
2165 if (wr->access & IB_ACCESS_REMOTE_WRITE) in ocrdma_build_reg()
2167 if (wr->access & IB_ACCESS_REMOTE_READ) in ocrdma_build_reg()
2169 hdr->lkey = wr->key; in ocrdma_build_reg()
2209 int ocrdma_post_send(struct ib_qp *ibqp, struct ib_send_wr *wr, in ocrdma_post_send() argument
2220 *bad_wr = wr; in ocrdma_post_send()
2224 while (wr) { in ocrdma_post_send()
2226 (wr->opcode != IB_WR_SEND && in ocrdma_post_send()
2227 wr->opcode != IB_WR_SEND_WITH_IMM)) { in ocrdma_post_send()
2228 *bad_wr = wr; in ocrdma_post_send()
2233 wr->num_sge > qp->sq.max_sges) { in ocrdma_post_send()
2234 *bad_wr = wr; in ocrdma_post_send()
2240 if (wr->send_flags & IB_SEND_SIGNALED || qp->signaled) in ocrdma_post_send()
2242 if (wr->send_flags & IB_SEND_FENCE) in ocrdma_post_send()
2245 if (wr->send_flags & IB_SEND_SOLICITED) in ocrdma_post_send()
2249 switch (wr->opcode) { in ocrdma_post_send()
2252 hdr->immdt = ntohl(wr->ex.imm_data); in ocrdma_post_send()
2255 ocrdma_build_send(qp, hdr, wr); in ocrdma_post_send()
2260 hdr->lkey = wr->ex.invalidate_rkey; in ocrdma_post_send()
2261 status = ocrdma_build_send(qp, hdr, wr); in ocrdma_post_send()
2265 hdr->immdt = ntohl(wr->ex.imm_data); in ocrdma_post_send()
2268 status = ocrdma_build_write(qp, hdr, wr); in ocrdma_post_send()
2271 ocrdma_build_read(qp, hdr, wr); in ocrdma_post_send()
2279 hdr->lkey = wr->ex.invalidate_rkey; in ocrdma_post_send()
2282 status = ocrdma_build_reg(qp, hdr, reg_wr(wr)); in ocrdma_post_send()
2289 *bad_wr = wr; in ocrdma_post_send()
2292 if (wr->send_flags & IB_SEND_SIGNALED || qp->signaled) in ocrdma_post_send()
2296 qp->wqe_wr_id_tbl[qp->sq.head].wrid = wr->wr_id; in ocrdma_post_send()
2306 wr = wr->next; in ocrdma_post_send()
2319 static void ocrdma_build_rqe(struct ocrdma_hdr_wqe *rqe, struct ib_recv_wr *wr, in ocrdma_build_rqe() argument
2324 if (wr->num_sge) in ocrdma_build_rqe()
2325 wqe_size = (wr->num_sge * sizeof(*sge)) + sizeof(*rqe); in ocrdma_build_rqe()
2336 ocrdma_build_sges(rqe, sge, wr->num_sge, wr->sg_list); in ocrdma_build_rqe()
2340 int ocrdma_post_recv(struct ib_qp *ibqp, struct ib_recv_wr *wr, in ocrdma_post_recv() argument
2351 *bad_wr = wr; in ocrdma_post_recv()
2354 while (wr) { in ocrdma_post_recv()
2356 wr->num_sge > qp->rq.max_sges) { in ocrdma_post_recv()
2357 *bad_wr = wr; in ocrdma_post_recv()
2362 ocrdma_build_rqe(rqe, wr, 0); in ocrdma_post_recv()
2364 qp->rqe_wr_id_tbl[qp->rq.head] = wr->wr_id; in ocrdma_post_recv()
2373 wr = wr->next; in ocrdma_post_recv()
2412 int ocrdma_post_srq_recv(struct ib_srq *ibsrq, struct ib_recv_wr *wr, in ocrdma_post_srq_recv() argument
2424 while (wr) { in ocrdma_post_srq_recv()
2426 wr->num_sge > srq->rq.max_sges) { in ocrdma_post_srq_recv()
2428 *bad_wr = wr; in ocrdma_post_srq_recv()
2433 ocrdma_build_rqe(rqe, wr, tag); in ocrdma_post_srq_recv()
2435 srq->rqe_wr_id_tbl[tag] = wr->wr_id; in ocrdma_post_srq_recv()
2442 wr = wr->next; in ocrdma_post_srq_recv()