Lines Matching full:cqe
967 int entries = attr->cqe; in ocrdma_create_cq()
1021 ibcq->cqe = new_cnt; in ocrdma_resize_cq()
1032 struct ocrdma_cqe *cqe = NULL; in ocrdma_flush_cq() local
1034 cqe = cq->va; in ocrdma_flush_cq()
1042 if (is_cqe_valid(cq, cqe)) in ocrdma_flush_cq()
1044 cqe++; in ocrdma_flush_cq()
1399 /* syncronize with wqe, rqe posting and cqe processing contexts */ in ocrdma_modify_qp()
1585 /* discard the cqe for a given QP */
1592 struct ocrdma_cqe *cqe; in ocrdma_discard_cqes() local
1598 * find the matching CQE for a given qp, in ocrdma_discard_cqes()
1601 * we don't complete out of order cqe. in ocrdma_discard_cqes()
1611 cqe = cq->va + cur_getp; in ocrdma_discard_cqes()
1616 qpn = cqe->cmn.qpn & OCRDMA_CQE_QPN_MASK; in ocrdma_discard_cqes()
1617 /* if previously discarded cqe found, skip that too. */ in ocrdma_discard_cqes()
1622 if (is_cqe_for_sq(cqe)) { in ocrdma_discard_cqes()
1626 wqe_idx = (le32_to_cpu(cqe->rq.buftag_qpn) >> in ocrdma_discard_cqes()
1639 /* mark cqe discarded so that it is not picked up later in ocrdma_discard_cqes()
1643 cqe->cmn.qpn = 0; in ocrdma_discard_cqes()
2259 /* cqe for srq's rqe can potentially arrive out of order.
2261 * the wr_id. tag/index is returned in cqe to reference back
2440 struct ocrdma_cqe *cqe) in ocrdma_set_cqe_status_flushed() argument
2442 if (is_cqe_for_sq(cqe)) { in ocrdma_set_cqe_status_flushed()
2443 cqe->flags_status_srcqpn = cpu_to_le32(le32_to_cpu( in ocrdma_set_cqe_status_flushed()
2444 cqe->flags_status_srcqpn) & in ocrdma_set_cqe_status_flushed()
2446 cqe->flags_status_srcqpn = cpu_to_le32(le32_to_cpu( in ocrdma_set_cqe_status_flushed()
2447 cqe->flags_status_srcqpn) | in ocrdma_set_cqe_status_flushed()
2452 cqe->flags_status_srcqpn = cpu_to_le32(le32_to_cpu( in ocrdma_set_cqe_status_flushed()
2453 cqe->flags_status_srcqpn) & in ocrdma_set_cqe_status_flushed()
2455 cqe->flags_status_srcqpn = cpu_to_le32(le32_to_cpu( in ocrdma_set_cqe_status_flushed()
2456 cqe->flags_status_srcqpn) | in ocrdma_set_cqe_status_flushed()
2460 cqe->flags_status_srcqpn = cpu_to_le32(le32_to_cpu( in ocrdma_set_cqe_status_flushed()
2461 cqe->flags_status_srcqpn) & in ocrdma_set_cqe_status_flushed()
2463 cqe->flags_status_srcqpn = cpu_to_le32(le32_to_cpu( in ocrdma_set_cqe_status_flushed()
2464 cqe->flags_status_srcqpn) | in ocrdma_set_cqe_status_flushed()
2471 static bool ocrdma_update_err_cqe(struct ib_wc *ibwc, struct ocrdma_cqe *cqe, in ocrdma_update_err_cqe() argument
2483 /* if wqe/rqe pending for which cqe needs to be returned, in ocrdma_update_err_cqe()
2488 ocrdma_set_cqe_status_flushed(qp, cqe); 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
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
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
2519 int status = (le32_to_cpu(cqe->flags_status_srcqpn) & in ocrdma_poll_err_scqe()
2525 * to keep the cqe in order to get the cq event again. in ocrdma_poll_err_scqe()
2529 * flush cqe for RQEs. in ocrdma_poll_err_scqe()
2534 expand = ocrdma_update_err_rcqe(ibwc, cqe, qp, status); in ocrdma_poll_err_scqe()
2536 /* stop processing further cqe as this cqe is used for in ocrdma_poll_err_scqe()
2538 * When QP is destroyed, this cqe will be removed in ocrdma_poll_err_scqe()
2552 expand = ocrdma_update_err_scqe(ibwc, cqe, qp, status); in ocrdma_poll_err_scqe()
2558 struct ocrdma_cqe *cqe, in ocrdma_poll_success_scqe() argument
2574 wqe_idx = (le32_to_cpu(cqe->wq.wqeidx) & in ocrdma_poll_success_scqe()
2577 expand = true; /* Coalesced CQE can't be consumed yet */ in ocrdma_poll_success_scqe()
2583 static bool ocrdma_poll_scqe(struct ocrdma_qp *qp, struct ocrdma_cqe *cqe, in ocrdma_poll_scqe() argument
2589 status = (le32_to_cpu(cqe->flags_status_srcqpn) & in ocrdma_poll_scqe()
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()
2600 struct ocrdma_cqe *cqe) in ocrdma_update_ud_rcqe() argument
2605 status = (le32_to_cpu(cqe->flags_status_srcqpn) & in ocrdma_update_ud_rcqe()
2607 ibwc->src_qp = le32_to_cpu(cqe->flags_status_srcqpn) & in ocrdma_update_ud_rcqe()
2611 ibwc->byte_len = (le32_to_cpu(cqe->ud.rxlen_pkey) >> in ocrdma_update_ud_rcqe()
2616 hdr_type = (le32_to_cpu(cqe->ud.rxlen_pkey) >> in ocrdma_update_ud_rcqe()
2627 struct ocrdma_cqe *cqe, in ocrdma_update_free_srq_cqe() argument
2635 wqe_idx = (le32_to_cpu(cqe->rq.buftag_qpn) >> in ocrdma_update_free_srq_cqe()
2646 static bool ocrdma_poll_err_rcqe(struct ocrdma_qp *qp, struct ocrdma_cqe *cqe, in ocrdma_poll_err_rcqe() argument
2657 * to keep the cqe to get the cq event again. in ocrdma_poll_err_rcqe()
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
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()
2696 if (is_cqe_imm(cqe)) { in ocrdma_poll_success_rcqe()
2697 ibwc->ex.imm_data = htonl(le32_to_cpu(cqe->rq.lkey_immdt)); in ocrdma_poll_success_rcqe()
2699 } else if (is_cqe_wr_imm(cqe)) { in ocrdma_poll_success_rcqe()
2701 ibwc->ex.imm_data = htonl(le32_to_cpu(cqe->rq.lkey_immdt)); in ocrdma_poll_success_rcqe()
2703 } else if (is_cqe_invalidated(cqe)) { in ocrdma_poll_success_rcqe()
2704 ibwc->ex.invalidate_rkey = le32_to_cpu(cqe->rq.lkey_immdt); in ocrdma_poll_success_rcqe()
2708 ocrdma_update_free_srq_cqe(ibwc, cqe, qp); in ocrdma_poll_success_rcqe()
2715 static bool ocrdma_poll_rcqe(struct ocrdma_qp *qp, struct ocrdma_cqe *cqe, in ocrdma_poll_rcqe() argument
2723 status = (le32_to_cpu(cqe->flags_status_srcqpn) & in ocrdma_poll_rcqe()
2727 status = (le32_to_cpu(cqe->flags_status_srcqpn) & 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()
2741 static void ocrdma_change_cq_phase(struct ocrdma_cq *cq, struct ocrdma_cqe *cqe, in ocrdma_change_cq_phase() argument
2749 cqe->flags_status_srcqpn = 0; in ocrdma_change_cq_phase()
2762 struct ocrdma_cqe *cqe; in ocrdma_poll_hwcq() local
2767 cqe = cq->va + cur_getp; in ocrdma_poll_hwcq()
2768 /* check whether valid cqe or not */ in ocrdma_poll_hwcq()
2769 if (!is_cqe_valid(cq, cqe)) in ocrdma_poll_hwcq()
2771 qpn = (le32_to_cpu(cqe->cmn.qpn) & OCRDMA_CQE_QPN_MASK); in ocrdma_poll_hwcq()
2772 /* ignore discarded cqe */ in ocrdma_poll_hwcq()
2778 if (is_cqe_for_sq(cqe)) { in ocrdma_poll_hwcq()
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()
2790 cqe->cmn.qpn = 0; in ocrdma_poll_hwcq()
2794 ocrdma_change_cq_phase(cq, cqe, cur_getp); in ocrdma_poll_hwcq()
2812 /* insert error cqe if the QP's SQ or RQ's CQ matches the CQ under poll. */
2856 /* adapter returns single error cqe when qp moves to in ocrdma_poll_cq()