Lines Matching refs:send_cq
98 struct mlx5_ib_cq **send_cq, struct mlx5_ib_cq **recv_cq);
628 static void mlx5_ib_lock_cqs(struct mlx5_ib_cq *send_cq,
630 static void mlx5_ib_unlock_cqs(struct mlx5_ib_cq *send_cq,
1417 if (init_attr->create_flags || init_attr->send_cq) in create_rss_raw_qp_tir()
1611 struct mlx5_ib_cq *send_cq; in create_qp_common() local
1818 scqe_sz = mlx5_ib_get_cqe_size(dev, init_attr->send_cq); in create_qp_common()
1873 if (init_attr->send_cq) in create_qp_common()
1874 MLX5_SET(qpc, qpc, cqn_snd, to_mcq(init_attr->send_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()
1939 if (send_cq) in create_qp_common()
1940 list_add_tail(&qp->cq_send_list, &send_cq->list_send_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()
1962 if (send_cq) { in mlx5_ib_lock_cqs()
1964 if (send_cq->mcq.cqn < recv_cq->mcq.cqn) { in mlx5_ib_lock_cqs()
1965 spin_lock(&send_cq->lock); in mlx5_ib_lock_cqs()
1968 } else if (send_cq->mcq.cqn == recv_cq->mcq.cqn) { in mlx5_ib_lock_cqs()
1969 spin_lock(&send_cq->lock); in mlx5_ib_lock_cqs()
1973 spin_lock_nested(&send_cq->lock, in mlx5_ib_lock_cqs()
1977 spin_lock(&send_cq->lock); in mlx5_ib_lock_cqs()
1982 __acquire(&send_cq->lock); in mlx5_ib_lock_cqs()
1984 __acquire(&send_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()
1992 if (send_cq) { in mlx5_ib_unlock_cqs()
1994 if (send_cq->mcq.cqn < recv_cq->mcq.cqn) { in mlx5_ib_unlock_cqs()
1996 spin_unlock(&send_cq->lock); in mlx5_ib_unlock_cqs()
1997 } else if (send_cq->mcq.cqn == recv_cq->mcq.cqn) { in mlx5_ib_unlock_cqs()
1999 spin_unlock(&send_cq->lock); in mlx5_ib_unlock_cqs()
2001 spin_unlock(&send_cq->lock); in mlx5_ib_unlock_cqs()
2006 spin_unlock(&send_cq->lock); in mlx5_ib_unlock_cqs()
2009 __release(&send_cq->lock); in mlx5_ib_unlock_cqs()
2013 __release(&send_cq->lock); in mlx5_ib_unlock_cqs()
2024 struct mlx5_ib_cq **send_cq, struct mlx5_ib_cq **recv_cq) in get_cqs() argument
2028 *send_cq = NULL; in get_cqs()
2033 *send_cq = ib_send_cq ? to_mcq(ib_send_cq) : NULL; in get_cqs()
2045 *send_cq = ib_send_cq ? to_mcq(ib_send_cq) : NULL; in get_cqs()
2051 *send_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()
2103 if (send_cq) in destroy_qp_common()
2112 if (send_cq != recv_cq) in destroy_qp_common()
2113 __mlx5_ib_cq_clean(send_cq, base->mqp.qpn, in destroy_qp_common()
2116 mlx5_ib_unlock_cqs(send_cq, recv_cq); in destroy_qp_common()
2313 init_attr->send_cq = NULL; in mlx5_ib_create_qp()
2346 init_attr->send_cq ? to_mcq(init_attr->send_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()
3070 context->cqn_send = send_cq ? cpu_to_be32(send_cq->mcq.cqn) : 0; in __mlx5_ib_modify_qp()
3208 if (send_cq != recv_cq) in __mlx5_ib_modify_qp()
3209 mlx5_ib_cq_clean(send_cq, base->mqp.qpn, NULL); in __mlx5_ib_modify_qp()
4302 if (unlikely(mlx5_wq_overflow(&qp->sq, nreq, qp->ibqp.send_cq))) in __begin_wqe()
5144 qp_init_attr->send_cq = ibqp->send_cq; in mlx5_ib_query_qp()
5766 struct ib_cq *cq = qp->send_cq; in mlx5_ib_drain_sq()