Lines Matching refs:ibwc

2399 static void ocrdma_update_wc(struct ocrdma_qp *qp, struct ib_wc *ibwc,  in ocrdma_update_wc()  argument
2408 ibwc->wr_id = qp->wqe_wr_id_tbl[wqe_idx].wrid; in ocrdma_update_wc()
2413 ibwc->opcode = IB_WC_RDMA_WRITE; in ocrdma_update_wc()
2417 ibwc->opcode = IB_WC_RDMA_READ; in ocrdma_update_wc()
2418 ibwc->byte_len = rw->len; in ocrdma_update_wc()
2421 ibwc->opcode = IB_WC_SEND; in ocrdma_update_wc()
2424 ibwc->opcode = IB_WC_REG_MR; in ocrdma_update_wc()
2427 ibwc->opcode = IB_WC_LOCAL_INV; in ocrdma_update_wc()
2430 ibwc->status = IB_WC_GENERAL_ERR; in ocrdma_update_wc()
2469 static bool ocrdma_update_err_cqe(struct ib_wc *ibwc, struct ocrdma_cqe *cqe, in ocrdma_update_err_cqe() argument
2474 ibwc->byte_len = 0; in ocrdma_update_err_cqe()
2475 ibwc->qp = &qp->ibqp; in ocrdma_update_err_cqe()
2476 ibwc->status = ocrdma_to_ibwc_err(status); in ocrdma_update_err_cqe()
2491 static int ocrdma_update_err_rcqe(struct ib_wc *ibwc, struct ocrdma_cqe *cqe, in ocrdma_update_err_rcqe() argument
2494 ibwc->opcode = IB_WC_RECV; in ocrdma_update_err_rcqe()
2495 ibwc->wr_id = qp->rqe_wr_id_tbl[qp->rq.tail]; in ocrdma_update_err_rcqe()
2498 return ocrdma_update_err_cqe(ibwc, cqe, qp, status); in ocrdma_update_err_rcqe()
2501 static int ocrdma_update_err_scqe(struct ib_wc *ibwc, struct ocrdma_cqe *cqe, in ocrdma_update_err_scqe() argument
2504 ocrdma_update_wc(qp, ibwc, qp->sq.tail); in ocrdma_update_err_scqe()
2507 return ocrdma_update_err_cqe(ibwc, cqe, qp, status); in ocrdma_update_err_scqe()
2512 struct ocrdma_cqe *cqe, struct ib_wc *ibwc, in ocrdma_poll_err_scqe() argument
2532 expand = ocrdma_update_err_rcqe(ibwc, cqe, qp, status); in ocrdma_poll_err_scqe()
2550 expand = ocrdma_update_err_scqe(ibwc, cqe, qp, status); in ocrdma_poll_err_scqe()
2557 struct ib_wc *ibwc, bool *polled) in ocrdma_poll_success_scqe() argument
2566 ibwc->status = IB_WC_SUCCESS; in ocrdma_poll_success_scqe()
2567 ibwc->wc_flags = 0; in ocrdma_poll_success_scqe()
2568 ibwc->qp = &qp->ibqp; in ocrdma_poll_success_scqe()
2569 ocrdma_update_wc(qp, ibwc, tail); in ocrdma_poll_success_scqe()
2582 struct ib_wc *ibwc, bool *polled, bool *stop) in ocrdma_poll_scqe() argument
2591 expand = ocrdma_poll_success_scqe(qp, cqe, ibwc, polled); in ocrdma_poll_scqe()
2593 expand = ocrdma_poll_err_scqe(qp, cqe, ibwc, polled, stop); in ocrdma_poll_scqe()
2597 static int ocrdma_update_ud_rcqe(struct ocrdma_dev *dev, struct ib_wc *ibwc, in ocrdma_update_ud_rcqe() argument
2605 ibwc->src_qp = le32_to_cpu(cqe->flags_status_srcqpn) & in ocrdma_update_ud_rcqe()
2607 ibwc->pkey_index = 0; in ocrdma_update_ud_rcqe()
2608 ibwc->wc_flags = IB_WC_GRH; in ocrdma_update_ud_rcqe()
2609 ibwc->byte_len = (le32_to_cpu(cqe->ud.rxlen_pkey) >> in ocrdma_update_ud_rcqe()
2617 ibwc->wc_flags |= IB_WC_WITH_NETWORK_HDR_TYPE; in ocrdma_update_ud_rcqe()
2618 ibwc->network_hdr_type = hdr_type; in ocrdma_update_ud_rcqe()
2624 static void ocrdma_update_free_srq_cqe(struct ib_wc *ibwc, in ocrdma_update_free_srq_cqe() argument
2637 ibwc->wr_id = srq->rqe_wr_id_tbl[wqe_idx]; in ocrdma_update_free_srq_cqe()
2645 struct ib_wc *ibwc, bool *polled, bool *stop, in ocrdma_poll_err_rcqe() argument
2661 expand = ocrdma_update_err_scqe(ibwc, cqe, qp, status); in ocrdma_poll_err_rcqe()
2674 expand = ocrdma_update_err_rcqe(ibwc, cqe, qp, status); in ocrdma_poll_err_rcqe()
2680 struct ocrdma_cqe *cqe, struct ib_wc *ibwc) in ocrdma_poll_success_rcqe() argument
2685 ibwc->opcode = IB_WC_RECV; in ocrdma_poll_success_rcqe()
2686 ibwc->qp = &qp->ibqp; in ocrdma_poll_success_rcqe()
2687 ibwc->status = IB_WC_SUCCESS; in ocrdma_poll_success_rcqe()
2690 ocrdma_update_ud_rcqe(dev, ibwc, cqe); in ocrdma_poll_success_rcqe()
2692 ibwc->byte_len = le32_to_cpu(cqe->rq.rxlen); in ocrdma_poll_success_rcqe()
2695 ibwc->ex.imm_data = htonl(le32_to_cpu(cqe->rq.lkey_immdt)); in ocrdma_poll_success_rcqe()
2696 ibwc->wc_flags |= IB_WC_WITH_IMM; in ocrdma_poll_success_rcqe()
2698 ibwc->opcode = IB_WC_RECV_RDMA_WITH_IMM; in ocrdma_poll_success_rcqe()
2699 ibwc->ex.imm_data = htonl(le32_to_cpu(cqe->rq.lkey_immdt)); in ocrdma_poll_success_rcqe()
2700 ibwc->wc_flags |= IB_WC_WITH_IMM; in ocrdma_poll_success_rcqe()
2702 ibwc->ex.invalidate_rkey = le32_to_cpu(cqe->rq.lkey_immdt); in ocrdma_poll_success_rcqe()
2703 ibwc->wc_flags |= IB_WC_WITH_INVALIDATE; in ocrdma_poll_success_rcqe()
2706 ocrdma_update_free_srq_cqe(ibwc, cqe, qp); in ocrdma_poll_success_rcqe()
2708 ibwc->wr_id = qp->rqe_wr_id_tbl[qp->rq.tail]; in ocrdma_poll_success_rcqe()
2714 struct ib_wc *ibwc, bool *polled, bool *stop) in ocrdma_poll_rcqe() argument
2719 ibwc->wc_flags = 0; in ocrdma_poll_rcqe()
2731 ocrdma_poll_success_rcqe(qp, cqe, ibwc); in ocrdma_poll_rcqe()
2733 expand = ocrdma_poll_err_rcqe(qp, cqe, ibwc, polled, stop, in ocrdma_poll_rcqe()
2752 struct ib_wc *ibwc) in ocrdma_poll_hwcq() argument
2777 expand = ocrdma_poll_scqe(qp, cqe, ibwc, &polled, in ocrdma_poll_hwcq()
2780 expand = ocrdma_poll_rcqe(qp, cqe, ibwc, &polled, in ocrdma_poll_hwcq()
2797 ibwc = ibwc + 1; in ocrdma_poll_hwcq()
2812 struct ocrdma_qp *qp, struct ib_wc *ibwc) in ocrdma_add_err_cqe() argument
2820 ocrdma_update_wc(qp, ibwc, qp->sq.tail); in ocrdma_add_err_cqe()
2823 ibwc->wr_id = qp->rqe_wr_id_tbl[qp->rq.tail]; in ocrdma_add_err_cqe()
2828 ibwc->byte_len = 0; in ocrdma_add_err_cqe()
2829 ibwc->status = IB_WC_WR_FLUSH_ERR; in ocrdma_add_err_cqe()
2830 ibwc = ibwc + 1; in ocrdma_add_err_cqe()