Lines Matching full:wc
108 static void erdma_process_ud_cqe(struct erdma_cqe *cqe, struct ib_wc *wc) in erdma_process_ud_cqe() argument
112 wc->wc_flags |= (IB_WC_GRH | IB_WC_WITH_NETWORK_HDR_TYPE); in erdma_process_ud_cqe()
114 wc->network_hdr_type = FIELD_GET(ERDMA_CQE_NTYPE_MASK, ud_info); in erdma_process_ud_cqe()
115 if (wc->network_hdr_type == ERDMA_NETWORK_TYPE_IPV4) in erdma_process_ud_cqe()
116 wc->network_hdr_type = RDMA_NETWORK_IPV4; in erdma_process_ud_cqe()
118 wc->network_hdr_type = RDMA_NETWORK_IPV6; in erdma_process_ud_cqe()
119 wc->src_qp = FIELD_GET(ERDMA_CQE_SQPN_MASK, ud_info); in erdma_process_ud_cqe()
120 wc->sl = FIELD_GET(ERDMA_CQE_SL_MASK, ud_info); in erdma_process_ud_cqe()
121 wc->pkey_index = 0; in erdma_process_ud_cqe()
126 static int erdma_poll_one_cqe(struct erdma_cq *cq, struct ib_wc *wc) in erdma_poll_one_cqe() argument
173 wc->wr_id = id_table[wqe_idx & (depth - 1)]; in erdma_poll_one_cqe()
174 wc->byte_len = be32_to_cpu(cqe->size); in erdma_poll_one_cqe()
176 wc->wc_flags = 0; in erdma_poll_one_cqe()
178 wc->opcode = wc_mapping_table[opcode]; in erdma_poll_one_cqe()
180 wc->ex.imm_data = cpu_to_be32(le32_to_cpu(cqe->imm_data)); in erdma_poll_one_cqe()
181 wc->wc_flags |= IB_WC_WITH_IMM; in erdma_poll_one_cqe()
183 wc->ex.invalidate_rkey = be32_to_cpu(cqe->inv_rkey); in erdma_poll_one_cqe()
184 wc->wc_flags |= IB_WC_WITH_INVALIDATE; in erdma_poll_one_cqe()
189 erdma_process_ud_cqe(cqe, wc); in erdma_poll_one_cqe()
194 wc->status = map_cqe_status[syndrome].base; in erdma_poll_one_cqe()
195 wc->vendor_err = map_cqe_status[syndrome].vendor; in erdma_poll_one_cqe()
196 wc->qp = &qp->ibqp; in erdma_poll_one_cqe()
201 int erdma_poll_cq(struct ib_cq *ibcq, int num_entries, struct ib_wc *wc) in erdma_poll_cq() argument
210 ret = erdma_poll_one_cqe(cq, wc + npolled); in erdma_poll_cq()