[dpdk-stable] patch 'net/mlx5: fix sync when handling Tx completions' has been queued to LTS release 17.11.7

Yongseok Koh yskoh at mellanox.com
Tue Jul 23 02:59:54 CEST 2019


Hi,

FYI, your patch has been queued to LTS release 17.11.7

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objection by 07/27/19. So please
shout if anyone has objection.

Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.

Thanks.

Yongseok

---
>From 094412925c32b3ceb3688c2af11288cf1f41738c Mon Sep 17 00:00:00 2001
From: Dekel Peled <dekelp at mellanox.com>
Date: Thu, 28 Feb 2019 17:20:30 +0200
Subject: [PATCH] net/mlx5: fix sync when handling Tx completions

[ backported from upstream commit fd350d3c9a13b5ebcb41741870c3f09b6920033f ]

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: 54d3fe948dba ("net/mlx5: poll completion queue once per a call")

Signed-off-by: Dekel Peled <dekelp at mellanox.com>
Acked-by: Shahaf Shuler <shahafs at mellanox.com>
---
 drivers/net/mlx5/mlx5_rxtx.h | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h
index ce25c4eddb..d92dfc0109 100644
--- a/drivers/net/mlx5/mlx5_rxtx.h
+++ b/drivers/net/mlx5/mlx5_rxtx.h
@@ -506,6 +506,7 @@ mlx5_tx_complete(struct mlx5_txq_data *txq)
 	}
 #endif /* NDEBUG */
 	++cq_ci;
+	rte_io_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);
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-07-22 17:55:07.961346164 -0700
+++ 0027-net-mlx5-fix-sync-when-handling-Tx-completions.patch	2019-07-22 17:55:05.913471000 -0700
@@ -1,8 +1,10 @@
-From fd350d3c9a13b5ebcb41741870c3f09b6920033f Mon Sep 17 00:00:00 2001
+From 094412925c32b3ceb3688c2af11288cf1f41738c Mon Sep 17 00:00:00 2001
 From: Dekel Peled <dekelp at mellanox.com>
 Date: Thu, 28 Feb 2019 17:20:30 +0200
 Subject: [PATCH] net/mlx5: fix sync when handling Tx completions
 
+[ backported from upstream commit fd350d3c9a13b5ebcb41741870c3f09b6920033f ]
+
 Function mlx5_tx_complete() reads completion entry information
 from Tx queue.
 For some processors not having strongly-ordered memory model,
@@ -10,7 +12,6 @@
 and the entry fields, in order to guarantee data is valid.
 
 Fixes: 54d3fe948dba ("net/mlx5: poll completion queue once per a call")
-Cc: stable at dpdk.org
 
 Signed-off-by: Dekel Peled <dekelp at mellanox.com>
 Acked-by: Shahaf Shuler <shahafs at mellanox.com>
@@ -19,14 +20,14 @@
  1 file changed, 1 insertion(+)
 
 diff --git a/drivers/net/mlx5/mlx5_rxtx.h b/drivers/net/mlx5/mlx5_rxtx.h
-index c0e1adf140..53115dde3d 100644
+index ce25c4eddb..d92dfc0109 100644
 --- a/drivers/net/mlx5/mlx5_rxtx.h
 +++ b/drivers/net/mlx5/mlx5_rxtx.h
-@@ -568,6 +568,7 @@ mlx5_tx_complete(struct mlx5_txq_data *txq)
+@@ -506,6 +506,7 @@ mlx5_tx_complete(struct mlx5_txq_data *txq)
  	}
  #endif /* NDEBUG */
  	++cq_ci;
-+	rte_cio_rmb();
++	rte_io_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);


More information about the stable mailing list