[dpdk-stable] patch 'net/mlx5: fix Direct Verbs flow descriptor allocation' has been queued to stable release 20.11.1

luca.boccassi at gmail.com luca.boccassi at gmail.com
Fri Feb 5 12:15:40 CET 2021


Hi,

FYI, your patch has been queued to stable release 20.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 02/07/21. So please
shout if anyone has objections.

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.

Queued patches are on a temporary branch at:
https://github.com/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/ac07d94045b17b52ae9048804b2cbe81432e55aa

Thanks.

Luca Boccassi

---
>From ac07d94045b17b52ae9048804b2cbe81432e55aa Mon Sep 17 00:00:00 2001
From: Gregory Etelson <getelson at nvidia.com>
Date: Tue, 8 Dec 2020 10:17:05 +0200
Subject: [PATCH] net/mlx5: fix Direct Verbs flow descriptor allocation

[ upstream commit 3ab5a3a7acafdf35ad4b8b1e7805ce7663c786c6 ]

Initialize flow descriptor tunnel member during flow creation.
Prevent access to stale data and pointers when flow descriptor is
reallocated after release.
Fix flow index validation.

Fixes: e7bfa3596a0a ("net/mlx5: separate the flow handle resource")
Fixes: 8bb81f2649b1 ("net/mlx5: use thread specific flow workspace")

Signed-off-by: Gregory Etelson <getelson at nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo at nvidia.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index e9badb800e..f61943f193 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -6232,8 +6232,9 @@ flow_dv_prepare(struct rte_eth_dev *dev,
 				   "not enough memory to create flow handle");
 		return NULL;
 	}
-	MLX5_ASSERT(wks->flow_idx + 1 < RTE_DIM(wks->flows));
+	MLX5_ASSERT(wks->flow_idx < RTE_DIM(wks->flows));
 	dev_flow = &wks->flows[wks->flow_idx++];
+	memset(dev_flow, 0, sizeof(*dev_flow));
 	dev_flow->handle = dev_handle;
 	dev_flow->handle_idx = handle_idx;
 	/*
@@ -6245,12 +6246,6 @@ flow_dv_prepare(struct rte_eth_dev *dev,
 	 */
 	dev_flow->dv.value.size = MLX5_ST_SZ_BYTES(fte_match_param) -
 				  MLX5_ST_SZ_BYTES(fte_match_set_misc4);
-	/*
-	 * The matching value needs to be cleared to 0 before using. In the
-	 * past, it will be automatically cleared when using rte_*alloc
-	 * API. The time consumption will be almost the same as before.
-	 */
-	memset(dev_flow->dv.value.buf, 0, MLX5_ST_SZ_BYTES(fte_match_param));
 	dev_flow->ingress = attr->ingress;
 	dev_flow->dv.transfer = attr->transfer;
 	return dev_flow;
-- 
2.29.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2021-02-05 11:18:31.697864897 +0000
+++ 0054-net-mlx5-fix-Direct-Verbs-flow-descriptor-allocation.patch	2021-02-05 11:18:28.790690807 +0000
@@ -1 +1 @@
-From 3ab5a3a7acafdf35ad4b8b1e7805ce7663c786c6 Mon Sep 17 00:00:00 2001
+From ac07d94045b17b52ae9048804b2cbe81432e55aa Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 3ab5a3a7acafdf35ad4b8b1e7805ce7663c786c6 ]
+
@@ -13 +14,0 @@
-Cc: stable at dpdk.org
@@ -22 +23 @@
-index c31737652c..7c2b389c63 100644
+index e9badb800e..f61943f193 100644
@@ -25 +26 @@
-@@ -6230,8 +6230,9 @@ flow_dv_prepare(struct rte_eth_dev *dev,
+@@ -6232,8 +6232,9 @@ flow_dv_prepare(struct rte_eth_dev *dev,
@@ -36 +37 @@
-@@ -6243,12 +6244,6 @@ flow_dv_prepare(struct rte_eth_dev *dev,
+@@ -6245,12 +6246,6 @@ flow_dv_prepare(struct rte_eth_dev *dev,


More information about the stable mailing list