net/mlx5: fix Tx queue reference count check
The Txq refcnt 1 value means that there is no real reference to the queue and only the control configurations are saved in the struct. The patch below wrongly didn't consider it and caused a leak in the Txq object resource. Revert the specific update in the refcnt. Fixes: b5c8b3e70cdf ("net/mlx5: use C11 atomics for RxQ/TxQ refcounts") Signed-off-by: Matan Azrad <matan@nvidia.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
This commit is contained in:
parent
992e6df3da
commit
95940894f3
@ -1235,7 +1235,7 @@ mlx5_txq_release(struct rte_eth_dev *dev, uint16_t idx)
|
||||
if (!(*priv->txqs)[idx])
|
||||
return 0;
|
||||
txq_ctrl = container_of((*priv->txqs)[idx], struct mlx5_txq_ctrl, txq);
|
||||
if (__atomic_sub_fetch(&txq_ctrl->refcnt, 1, __ATOMIC_RELAXED) != 0)
|
||||
if (__atomic_sub_fetch(&txq_ctrl->refcnt, 1, __ATOMIC_RELAXED) > 1)
|
||||
return 1;
|
||||
if (txq_ctrl->obj) {
|
||||
priv->obj_ops.txq_obj_release(txq_ctrl->obj);
|
||||
|
Loading…
x
Reference in New Issue
Block a user