Lines Matching refs:recv_cq
88 struct mlx5_ib_cq **send_cq, struct mlx5_ib_cq **recv_cq);
828 struct mlx5_ib_cq *recv_cq);
830 struct mlx5_ib_cq *recv_cq);
1291 static int get_rq_ts_format(struct mlx5_ib_dev *dev, struct mlx5_ib_cq *recv_cq)
1295 return get_ts_format(dev, recv_cq, fr_supported(ts_cap),
1308 struct mlx5_ib_cq *recv_cq)
1319 recv_cq ? get_ts_format(dev, recv_cq, fr_sup, rt_sup) :
1616 to_mcq(init_attr->recv_cq));
2081 struct mlx5_ib_cq *recv_cq;
2117 to_mcq(init_attr->recv_cq));
2177 if (init_attr->recv_cq)
2179 to_mcq(init_attr->recv_cq)->mcq.cqn);
2205 get_cqs(qp->type, init_attr->send_cq, init_attr->recv_cq,
2206 &send_cq, &recv_cq);
2208 mlx5_ib_lock_cqs(send_cq, recv_cq);
2217 if (recv_cq)
2218 list_add_tail(&qp->cq_recv_list, &recv_cq->list_recv_qp);
2219 mlx5_ib_unlock_cqs(send_cq, recv_cq);
2242 struct mlx5_ib_cq *recv_cq;
2285 to_mcq(init_attr->recv_cq));
2323 int rcqe_sz = mlx5_ib_get_cqe_size(init_attr->recv_cq);
2373 if (init_attr->recv_cq)
2374 MLX5_SET(qpc, qpc, cqn_rcv, to_mcq(init_attr->recv_cq)->mcq.cqn);
2408 get_cqs(qp->type, init_attr->send_cq, init_attr->recv_cq,
2409 &send_cq, &recv_cq);
2411 mlx5_ib_lock_cqs(send_cq, recv_cq);
2420 if (recv_cq)
2421 list_add_tail(&qp->cq_recv_list, &recv_cq->list_recv_qp);
2422 mlx5_ib_unlock_cqs(send_cq, recv_cq);
2443 struct mlx5_ib_cq *recv_cq;
2516 if (attr->recv_cq)
2517 MLX5_SET(qpc, qpc, cqn_rcv, to_mcq(attr->recv_cq)->mcq.cqn);
2541 get_cqs(qp->type, attr->send_cq, attr->recv_cq,
2542 &send_cq, &recv_cq);
2544 mlx5_ib_lock_cqs(send_cq, recv_cq);
2553 if (recv_cq)
2554 list_add_tail(&qp->cq_recv_list, &recv_cq->list_recv_qp);
2555 mlx5_ib_unlock_cqs(send_cq, recv_cq);
2565 static void mlx5_ib_lock_cqs(struct mlx5_ib_cq *send_cq, struct mlx5_ib_cq *recv_cq)
2566 __acquires(&send_cq->lock) __acquires(&recv_cq->lock)
2569 if (recv_cq) {
2570 if (send_cq->mcq.cqn < recv_cq->mcq.cqn) {
2572 spin_lock_nested(&recv_cq->lock,
2574 } else if (send_cq->mcq.cqn == recv_cq->mcq.cqn) {
2576 __acquire(&recv_cq->lock);
2578 spin_lock(&recv_cq->lock);
2584 __acquire(&recv_cq->lock);
2586 } else if (recv_cq) {
2587 spin_lock(&recv_cq->lock);
2591 __acquire(&recv_cq->lock);
2595 static void mlx5_ib_unlock_cqs(struct mlx5_ib_cq *send_cq, struct mlx5_ib_cq *recv_cq)
2596 __releases(&send_cq->lock) __releases(&recv_cq->lock)
2599 if (recv_cq) {
2600 if (send_cq->mcq.cqn < recv_cq->mcq.cqn) {
2601 spin_unlock(&recv_cq->lock);
2603 } else if (send_cq->mcq.cqn == recv_cq->mcq.cqn) {
2604 __release(&recv_cq->lock);
2608 spin_unlock(&recv_cq->lock);
2611 __release(&recv_cq->lock);
2614 } else if (recv_cq) {
2616 spin_unlock(&recv_cq->lock);
2618 __release(&recv_cq->lock);
2625 struct mlx5_ib_cq **send_cq, struct mlx5_ib_cq **recv_cq)
2630 *recv_cq = NULL;
2635 *recv_cq = NULL;
2645 *recv_cq = ib_recv_cq ? to_mcq(ib_recv_cq) : NULL;
2649 *recv_cq = NULL;
2661 struct mlx5_ib_cq *send_cq, *recv_cq;
2693 get_cqs(qp->type, qp->ibqp.send_cq, qp->ibqp.recv_cq, &send_cq,
2694 &recv_cq);
2697 mlx5_ib_lock_cqs(send_cq, recv_cq);
2703 if (recv_cq)
2707 __mlx5_ib_cq_clean(recv_cq, base->mqp.qpn,
2709 if (send_cq != recv_cq)
2713 mlx5_ib_unlock_cqs(send_cq, recv_cq);
2749 MLX5_SET(dctc, dctc, cqn, to_mcq(attr->recv_cq)->mcq.cqn);
2756 int rcqe_sz = mlx5_ib_get_cqe_size(attr->recv_cq);
3138 params->attr->recv_cq ? to_mcq(params->attr->recv_cq)->mcq.cqn :
3154 ret = (!attr->srq || !attr->recv_cq) ? -EINVAL : 0;
4151 struct mlx5_ib_cq *send_cq, *recv_cq;
4257 get_cqs(qp->type, qp->ibqp.send_cq, qp->ibqp.recv_cq,
4258 &send_cq, &recv_cq);
4263 if (recv_cq)
4264 MLX5_SET(qpc, qpc, cqn_rcv, recv_cq->mcq.cqn);
4410 mlx5_ib_cq_clean(recv_cq, base->mqp.qpn,
4412 if (send_cq != recv_cq)
5115 qp_init_attr->recv_cq = ibqp->recv_cq;
5774 struct ib_cq *cq = qp->recv_cq;