Lines Matching full:dct
13 struct mlx5_core_dct *dct);
95 struct mlx5_core_dct *dct; in dct_event_notifier() local
99 qpn = be32_to_cpu(eqe->data.dct.dctn) & 0xFFFFFF; in dct_event_notifier()
101 dct = xa_load(&dev->qp_table.dct_xa, qpn); in dct_event_notifier()
102 if (dct) in dct_event_notifier()
103 complete(&dct->drained); in dct_event_notifier()
210 struct mlx5_core_dct *dct) in _mlx5_core_destroy_dct() argument
213 struct mlx5_core_qp *qp = &dct->mqp; in _mlx5_core_destroy_dct()
221 int mlx5_core_create_dct(struct mlx5_ib_dev *dev, struct mlx5_core_dct *dct, in mlx5_core_create_dct() argument
224 struct mlx5_core_qp *qp = &dct->mqp; in mlx5_core_create_dct()
227 init_completion(&dct->drained); in mlx5_core_create_dct()
236 err = xa_err(xa_store_irq(&dev->qp_table.dct_xa, qp->qpn, dct, GFP_KERNEL)); in mlx5_core_create_dct()
242 _mlx5_core_destroy_dct(dev, dct); in mlx5_core_create_dct()
279 struct mlx5_core_dct *dct) in mlx5_core_drain_dct() argument
282 struct mlx5_core_qp *qp = &dct->mqp; in mlx5_core_drain_dct()
291 struct mlx5_core_dct *dct) in mlx5_core_destroy_dct() argument
297 err = mlx5_core_drain_dct(dev, dct); in mlx5_core_destroy_dct()
304 wait_for_completion(&dct->drained); in mlx5_core_destroy_dct()
307 tmp = xa_cmpxchg_irq(&table->dct_xa, dct->mqp.qpn, dct, XA_ZERO_ENTRY, GFP_KERNEL); in mlx5_core_destroy_dct()
308 if (WARN_ON(tmp != dct)) in mlx5_core_destroy_dct()
311 err = _mlx5_core_destroy_dct(dev, dct); in mlx5_core_destroy_dct()
313 xa_cmpxchg_irq(&table->dct_xa, dct->mqp.qpn, XA_ZERO_ENTRY, dct, 0); in mlx5_core_destroy_dct()
316 xa_erase_irq(&table->dct_xa, dct->mqp.qpn); in mlx5_core_destroy_dct()
549 int mlx5_core_dct_query(struct mlx5_ib_dev *dev, struct mlx5_core_dct *dct, in mlx5_core_dct_query() argument
553 struct mlx5_core_qp *qp = &dct->mqp; in mlx5_core_dct_query()