net/mlx5: fix sync when handling Tx completions
Function mlx5_tx_complete() reads completion entry information
from Tx queue.
For some processors not having strongly-ordered memory model,
there has to be a memory barrier between reading the entry index
and the entry fields, in order to guarantee data is valid.
Fixes: 54d3fe948d
("net/mlx5: poll completion queue once per a call")
Cc: stable@dpdk.org
Signed-off-by: Dekel Peled <dekelp@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
This commit is contained in:
parent
38f0a160b5
commit
fd350d3c9a
@ -568,6 +568,7 @@ mlx5_tx_complete(struct mlx5_txq_data *txq)
|
||||
}
|
||||
#endif /* NDEBUG */
|
||||
++cq_ci;
|
||||
rte_cio_rmb();
|
||||
txq->wqe_pi = rte_be_to_cpu_16(cqe->wqe_counter);
|
||||
ctrl = (volatile struct mlx5_wqe_ctrl *)
|
||||
tx_mlx5_wqe(txq, txq->wqe_pi);
|
||||
|
Loading…
Reference in New Issue
Block a user