Lines Matching refs:ibwc

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