Skip to content

Commit b7cf075

Browse files
Binary-EaterSaeed Mahameed
authored andcommitted
net/mlx5e: Use a memory barrier to enforce PTP WQ xmit submission tracking occurs after populating the metadata_map
Just simply reordering the functions mlx5e_ptp_metadata_map_put and mlx5e_ptpsq_track_metadata in the mlx5e_txwqe_complete context is not good enough since both the compiler and CPU are free to reorder these two functions. If reordering does occur, the issue that was supposedly fixed by 7e3f3ba ("net/mlx5e: Track xmit submission to PTP WQ after populating metadata map") will be seen. This will lead to NULL pointer dereferences in mlx5e_ptpsq_mark_ts_cqes_undelivered in the NAPI polling context due to the tracking list being populated before the metadata map. Fixes: 7e3f3ba ("net/mlx5e: Track xmit submission to PTP WQ after populating metadata map") Signed-off-by: Rahul Rameshbabu <[email protected]> Signed-off-by: Saeed Mahameed <[email protected]> CC: Vadim Fedorenko <[email protected]>
1 parent a71f214 commit b7cf075

File tree

1 file changed

+2
-0
lines changed
  • drivers/net/ethernet/mellanox/mlx5/core

1 file changed

+2
-0
lines changed

drivers/net/ethernet/mellanox/mlx5/core/en_tx.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,8 @@ mlx5e_txwqe_complete(struct mlx5e_txqsq *sq, struct sk_buff *skb,
401401
mlx5e_skb_cb_hwtstamp_init(skb);
402402
mlx5e_ptp_metadata_map_put(&sq->ptpsq->metadata_map, skb,
403403
metadata_index);
404+
/* ensure skb is put on metadata_map before tracking the index */
405+
wmb();
404406
mlx5e_ptpsq_track_metadata(sq->ptpsq, metadata_index);
405407
if (!netif_tx_queue_stopped(sq->txq) &&
406408
mlx5e_ptpsq_metadata_freelist_empty(sq->ptpsq)) {

0 commit comments

Comments
 (0)