Lines Matching full:dct

13 			       struct mlx5_core_dct *dct);
93 struct mlx5_core_dct *dct; in dct_event_notifier() local
97 qpn = be32_to_cpu(eqe->data.dct.dctn) & 0xFFFFFF; in dct_event_notifier()
99 dct = xa_load(&dev->qp_table.dct_xa, qpn); in dct_event_notifier()
100 if (dct) in dct_event_notifier()
101 complete(&dct->drained); in dct_event_notifier()
196 struct mlx5_core_dct *dct) in _mlx5_core_destroy_dct() argument
199 struct mlx5_core_qp *qp = &dct->mqp; in _mlx5_core_destroy_dct()
207 int mlx5_core_create_dct(struct mlx5_ib_dev *dev, struct mlx5_core_dct *dct, in mlx5_core_create_dct() argument
210 struct mlx5_core_qp *qp = &dct->mqp; in mlx5_core_create_dct()
213 init_completion(&dct->drained); in mlx5_core_create_dct()
222 err = xa_err(xa_store_irq(&dev->qp_table.dct_xa, qp->qpn, dct, GFP_KERNEL)); in mlx5_core_create_dct()
228 _mlx5_core_destroy_dct(dev, dct); in mlx5_core_create_dct()
266 struct mlx5_core_dct *dct) in mlx5_core_drain_dct() argument
269 struct mlx5_core_qp *qp = &dct->mqp; in mlx5_core_drain_dct()
278 struct mlx5_core_dct *dct) in mlx5_core_destroy_dct() argument
284 err = mlx5_core_drain_dct(dev, dct); in mlx5_core_destroy_dct()
291 wait_for_completion(&dct->drained); in mlx5_core_destroy_dct()
294 tmp = xa_cmpxchg_irq(&table->dct_xa, dct->mqp.qpn, dct, XA_ZERO_ENTRY, GFP_KERNEL); in mlx5_core_destroy_dct()
295 if (WARN_ON(tmp != dct)) in mlx5_core_destroy_dct()
298 err = _mlx5_core_destroy_dct(dev, dct); in mlx5_core_destroy_dct()
300 xa_cmpxchg_irq(&table->dct_xa, dct->mqp.qpn, XA_ZERO_ENTRY, dct, 0); in mlx5_core_destroy_dct()
303 xa_erase_irq(&table->dct_xa, dct->mqp.qpn); in mlx5_core_destroy_dct()
540 int mlx5_core_dct_query(struct mlx5_ib_dev *dev, struct mlx5_core_dct *dct, in mlx5_core_dct_query() argument
544 struct mlx5_core_qp *qp = &dct->mqp; in mlx5_core_dct_query()