Lines Matching refs:recv_cq
98 struct mlx5_ib_cq **send_cq, struct mlx5_ib_cq **recv_cq);
629 struct mlx5_ib_cq *recv_cq);
631 struct mlx5_ib_cq *recv_cq);
1612 struct mlx5_ib_cq *recv_cq; in create_qp_common() local
1817 rcqe_sz = mlx5_ib_get_cqe_size(dev, init_attr->recv_cq); in create_qp_common()
1876 if (init_attr->recv_cq) in create_qp_common()
1877 MLX5_SET(qpc, qpc, cqn_rcv, to_mcq(init_attr->recv_cq)->mcq.cqn); in create_qp_common()
1929 get_cqs(init_attr->qp_type, init_attr->send_cq, init_attr->recv_cq, in create_qp_common()
1930 &send_cq, &recv_cq); in create_qp_common()
1932 mlx5_ib_lock_cqs(send_cq, recv_cq); in create_qp_common()
1941 if (recv_cq) in create_qp_common()
1942 list_add_tail(&qp->cq_recv_list, &recv_cq->list_recv_qp); in create_qp_common()
1943 mlx5_ib_unlock_cqs(send_cq, recv_cq); in create_qp_common()
1959 static void mlx5_ib_lock_cqs(struct mlx5_ib_cq *send_cq, struct mlx5_ib_cq *recv_cq) in mlx5_ib_lock_cqs() argument
1960 __acquires(&send_cq->lock) __acquires(&recv_cq->lock) in mlx5_ib_lock_cqs()
1963 if (recv_cq) { in mlx5_ib_lock_cqs()
1964 if (send_cq->mcq.cqn < recv_cq->mcq.cqn) { in mlx5_ib_lock_cqs()
1966 spin_lock_nested(&recv_cq->lock, in mlx5_ib_lock_cqs()
1968 } else if (send_cq->mcq.cqn == recv_cq->mcq.cqn) { in mlx5_ib_lock_cqs()
1970 __acquire(&recv_cq->lock); in mlx5_ib_lock_cqs()
1972 spin_lock(&recv_cq->lock); in mlx5_ib_lock_cqs()
1978 __acquire(&recv_cq->lock); in mlx5_ib_lock_cqs()
1980 } else if (recv_cq) { in mlx5_ib_lock_cqs()
1981 spin_lock(&recv_cq->lock); in mlx5_ib_lock_cqs()
1985 __acquire(&recv_cq->lock); in mlx5_ib_lock_cqs()
1989 static void mlx5_ib_unlock_cqs(struct mlx5_ib_cq *send_cq, struct mlx5_ib_cq *recv_cq) in mlx5_ib_unlock_cqs() argument
1990 __releases(&send_cq->lock) __releases(&recv_cq->lock) in mlx5_ib_unlock_cqs()
1993 if (recv_cq) { in mlx5_ib_unlock_cqs()
1994 if (send_cq->mcq.cqn < recv_cq->mcq.cqn) { in mlx5_ib_unlock_cqs()
1995 spin_unlock(&recv_cq->lock); in mlx5_ib_unlock_cqs()
1997 } else if (send_cq->mcq.cqn == recv_cq->mcq.cqn) { in mlx5_ib_unlock_cqs()
1998 __release(&recv_cq->lock); in mlx5_ib_unlock_cqs()
2002 spin_unlock(&recv_cq->lock); in mlx5_ib_unlock_cqs()
2005 __release(&recv_cq->lock); in mlx5_ib_unlock_cqs()
2008 } else if (recv_cq) { in mlx5_ib_unlock_cqs()
2010 spin_unlock(&recv_cq->lock); in mlx5_ib_unlock_cqs()
2012 __release(&recv_cq->lock); in mlx5_ib_unlock_cqs()
2024 struct mlx5_ib_cq **send_cq, struct mlx5_ib_cq **recv_cq) in get_cqs() argument
2029 *recv_cq = NULL; in get_cqs()
2034 *recv_cq = NULL; in get_cqs()
2046 *recv_cq = ib_recv_cq ? to_mcq(ib_recv_cq) : NULL; in get_cqs()
2052 *recv_cq = NULL; in get_cqs()
2063 struct mlx5_ib_cq *send_cq, *recv_cq; in destroy_qp_common() local
2096 get_cqs(qp->ibqp.qp_type, qp->ibqp.send_cq, qp->ibqp.recv_cq, in destroy_qp_common()
2097 &send_cq, &recv_cq); in destroy_qp_common()
2100 mlx5_ib_lock_cqs(send_cq, recv_cq); in destroy_qp_common()
2106 if (recv_cq) in destroy_qp_common()
2110 __mlx5_ib_cq_clean(recv_cq, base->mqp.qpn, in destroy_qp_common()
2112 if (send_cq != recv_cq) in destroy_qp_common()
2116 mlx5_ib_unlock_cqs(send_cq, recv_cq); in destroy_qp_common()
2177 if (!attr->srq || !attr->recv_cq) in mlx5_ib_create_dct()
2199 MLX5_SET(dctc, dctc, cqn, to_mcq(attr->recv_cq)->mcq.cqn); in mlx5_ib_create_dct()
2310 init_attr->recv_cq = NULL; in mlx5_ib_create_qp()
2345 init_attr->recv_cq ? to_mcq(init_attr->recv_cq)->mcq.cqn : -1, in mlx5_ib_create_qp()
2957 struct mlx5_ib_cq *send_cq, *recv_cq; in __mlx5_ib_modify_qp() local
3066 get_cqs(qp->ibqp.qp_type, qp->ibqp.send_cq, qp->ibqp.recv_cq, in __mlx5_ib_modify_qp()
3067 &send_cq, &recv_cq); in __mlx5_ib_modify_qp()
3071 context->cqn_recv = recv_cq ? cpu_to_be32(recv_cq->mcq.cqn) : 0; in __mlx5_ib_modify_qp()
3206 mlx5_ib_cq_clean(recv_cq, base->mqp.qpn, in __mlx5_ib_modify_qp()
3208 if (send_cq != recv_cq) in __mlx5_ib_modify_qp()
4718 if (mlx5_wq_overflow(&qp->rq, nreq, qp->ibqp.recv_cq)) { in _mlx5_ib_post_recv()
5143 qp_init_attr->recv_cq = ibqp->recv_cq; in mlx5_ib_query_qp()
5801 struct ib_cq *cq = qp->recv_cq; in mlx5_ib_drain_rq()