Lines Matching refs:ibwc
2401 static void ocrdma_update_wc(struct ocrdma_qp *qp, struct ib_wc *ibwc,
2410 ibwc->wr_id = qp->wqe_wr_id_tbl[wqe_idx].wrid;
2415 ibwc->opcode = IB_WC_RDMA_WRITE;
2419 ibwc->opcode = IB_WC_RDMA_READ;
2420 ibwc->byte_len = rw->len;
2423 ibwc->opcode = IB_WC_SEND;
2426 ibwc->opcode = IB_WC_REG_MR;
2429 ibwc->opcode = IB_WC_LOCAL_INV;
2432 ibwc->status = IB_WC_GENERAL_ERR;
2471 static bool ocrdma_update_err_cqe(struct ib_wc *ibwc, struct ocrdma_cqe *cqe,
2476 ibwc->byte_len = 0;
2477 ibwc->qp = &qp->ibqp;
2478 ibwc->status = ocrdma_to_ibwc_err(status);
2493 static int ocrdma_update_err_rcqe(struct ib_wc *ibwc, struct ocrdma_cqe *cqe,
2496 ibwc->opcode = IB_WC_RECV;
2497 ibwc->wr_id = qp->rqe_wr_id_tbl[qp->rq.tail];
2500 return ocrdma_update_err_cqe(ibwc, cqe, qp, status);
2503 static int ocrdma_update_err_scqe(struct ib_wc *ibwc, struct ocrdma_cqe *cqe,
2506 ocrdma_update_wc(qp, ibwc, qp->sq.tail);
2509 return ocrdma_update_err_cqe(ibwc, cqe, qp, status);
2514 struct ocrdma_cqe *cqe, struct ib_wc *ibwc,
2534 expand = ocrdma_update_err_rcqe(ibwc, cqe, qp, status);
2552 expand = ocrdma_update_err_scqe(ibwc, cqe, qp, status);
2559 struct ib_wc *ibwc, bool *polled)
2568 ibwc->status = IB_WC_SUCCESS;
2569 ibwc->wc_flags = 0;
2570 ibwc->qp = &qp->ibqp;
2571 ocrdma_update_wc(qp, ibwc, tail);
2584 struct ib_wc *ibwc, bool *polled, bool *stop)
2593 expand = ocrdma_poll_success_scqe(qp, cqe, ibwc, polled);
2595 expand = ocrdma_poll_err_scqe(qp, cqe, ibwc, polled, stop);
2599 static int ocrdma_update_ud_rcqe(struct ocrdma_dev *dev, struct ib_wc *ibwc,
2607 ibwc->src_qp = le32_to_cpu(cqe->flags_status_srcqpn) &
2609 ibwc->pkey_index = 0;
2610 ibwc->wc_flags = IB_WC_GRH;
2611 ibwc->byte_len = (le32_to_cpu(cqe->ud.rxlen_pkey) >>
2619 ibwc->wc_flags |= IB_WC_WITH_NETWORK_HDR_TYPE;
2620 ibwc->network_hdr_type = hdr_type;
2626 static void ocrdma_update_free_srq_cqe(struct ib_wc *ibwc,
2639 ibwc->wr_id = srq->rqe_wr_id_tbl[wqe_idx];
2647 struct ib_wc *ibwc, bool *polled, bool *stop,
2663 expand = ocrdma_update_err_scqe(ibwc, cqe, qp, status);
2676 expand = ocrdma_update_err_rcqe(ibwc, cqe, qp, status);
2682 struct ocrdma_cqe *cqe, struct ib_wc *ibwc)
2687 ibwc->opcode = IB_WC_RECV;
2688 ibwc->qp = &qp->ibqp;
2689 ibwc->status = IB_WC_SUCCESS;
2692 ocrdma_update_ud_rcqe(dev, ibwc, cqe);
2694 ibwc->byte_len = le32_to_cpu(cqe->rq.rxlen);
2697 ibwc->ex.imm_data = htonl(le32_to_cpu(cqe->rq.lkey_immdt));
2698 ibwc->wc_flags |= IB_WC_WITH_IMM;
2700 ibwc->opcode = IB_WC_RECV_RDMA_WITH_IMM;
2701 ibwc->ex.imm_data = htonl(le32_to_cpu(cqe->rq.lkey_immdt));
2702 ibwc->wc_flags |= IB_WC_WITH_IMM;
2704 ibwc->ex.invalidate_rkey = le32_to_cpu(cqe->rq.lkey_immdt);
2705 ibwc->wc_flags |= IB_WC_WITH_INVALIDATE;
2708 ocrdma_update_free_srq_cqe(ibwc, cqe, qp);
2710 ibwc->wr_id = qp->rqe_wr_id_tbl[qp->rq.tail];
2716 struct ib_wc *ibwc, bool *polled, bool *stop)
2721 ibwc->wc_flags = 0;
2733 ocrdma_poll_success_rcqe(qp, cqe, ibwc);
2735 expand = ocrdma_poll_err_rcqe(qp, cqe, ibwc, polled, stop,
2754 struct ib_wc *ibwc)
2779 expand = ocrdma_poll_scqe(qp, cqe, ibwc, &polled,
2782 expand = ocrdma_poll_rcqe(qp, cqe, ibwc, &polled,
2799 ibwc = ibwc + 1;
2814 struct ocrdma_qp *qp, struct ib_wc *ibwc)
2822 ocrdma_update_wc(qp, ibwc, qp->sq.tail);
2825 ibwc->wr_id = qp->rqe_wr_id_tbl[qp->rq.tail];
2830 ibwc->byte_len = 0;
2831 ibwc->status = IB_WC_WR_FLUSH_ERR;
2832 ibwc = ibwc + 1;