[dpdk-stable] patch 'net/mlx5: fix call to modify action without init item' has been queued to stable release 19.11.3

luca.boccassi at gmail.com luca.boccassi at gmail.com
Tue May 19 15:02:38 CEST 2020


Hi,

FYI, your patch has been queued to stable release 19.11.3

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 05/21/20. 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.

Thanks.

Luca Boccassi

---
>From 5e3859176e72c3adac5bda7123a05c26a4a126b0 Mon Sep 17 00:00:00 2001
From: Asaf Penso <asafp at mellanox.com>
Date: Wed, 25 Mar 2020 19:53:18 +0000
Subject: [PATCH] net/mlx5: fix call to modify action without init item

[ upstream commit 7c2062c45193f46b81617a207b0dcd3940ce11ab ]

The item is being set according to the attribute value, whether it is
udp/tcp or ipv4/6.
Also, there are two condition calls.

If the attribute is neither udp/tcp or ipv4/6 the item is not
initialized at all, but the call to the flow_dv_convert_modify_action is
still being done.
Also, even if the attribute is tcp/udp or ipv4/6, we still have two
conditions.

This patch changes the conditions, so the item will always be set.
By doing this, there is also a save in the number of condition calls.

Fixes: 4bb14c83df95 ("net/mlx5: support modify header using Direct Verbs")

Signed-off-by: Asaf Penso <asafp at mellanox.com>
Reviewed-by: Dekel Peled <dekelp at mellanox.com>
Acked-by: Matan Azrad <matan at mellanox.com>
---
 drivers/net/mlx5/mlx5_flow_dv.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
index 48d3031c90..076a30544f 100644
--- a/drivers/net/mlx5/mlx5_flow_dv.c
+++ b/drivers/net/mlx5/mlx5_flow_dv.c
@@ -697,8 +697,8 @@ flow_dv_convert_action_modify_tp
 		item.spec = &udp;
 		item.mask = &udp_mask;
 		field = modify_udp;
-	}
-	if (attr->tcp) {
+	} else {
+		assert(attr->tcp);
 		memset(&tcp, 0, sizeof(tcp));
 		memset(&tcp_mask, 0, sizeof(tcp_mask));
 		if (action->type == RTE_FLOW_ACTION_TYPE_SET_TP_SRC) {
@@ -768,8 +768,8 @@ flow_dv_convert_action_modify_ttl
 		item.spec = &ipv4;
 		item.mask = &ipv4_mask;
 		field = modify_ipv4;
-	}
-	if (attr->ipv6) {
+	} else {
+		assert(attr->ipv6);
 		memset(&ipv6, 0, sizeof(ipv6));
 		memset(&ipv6_mask, 0, sizeof(ipv6_mask));
 		ipv6.hdr.hop_limits = conf->ttl_value;
@@ -829,8 +829,8 @@ flow_dv_convert_action_modify_dec_ttl
 		item.spec = &ipv4;
 		item.mask = &ipv4_mask;
 		field = modify_ipv4;
-	}
-	if (attr->ipv6) {
+	} else {
+		assert(attr->ipv6);
 		memset(&ipv6, 0, sizeof(ipv6));
 		memset(&ipv6_mask, 0, sizeof(ipv6_mask));
 		ipv6.hdr.hop_limits = 0xFF;
-- 
2.20.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-05-19 14:04:45.549535918 +0100
+++ 0023-net-mlx5-fix-call-to-modify-action-without-init-item.patch	2020-05-19 14:04:44.148647140 +0100
@@ -1,8 +1,10 @@
-From 7c2062c45193f46b81617a207b0dcd3940ce11ab Mon Sep 17 00:00:00 2001
+From 5e3859176e72c3adac5bda7123a05c26a4a126b0 Mon Sep 17 00:00:00 2001
 From: Asaf Penso <asafp at mellanox.com>
 Date: Wed, 25 Mar 2020 19:53:18 +0000
 Subject: [PATCH] net/mlx5: fix call to modify action without init item
 
+[ upstream commit 7c2062c45193f46b81617a207b0dcd3940ce11ab ]
+
 The item is being set according to the attribute value, whether it is
 udp/tcp or ipv4/6.
 Also, there are two condition calls.
@@ -17,7 +19,6 @@
 By doing this, there is also a save in the number of condition calls.
 
 Fixes: 4bb14c83df95 ("net/mlx5: support modify header using Direct Verbs")
-Cc: stable at dpdk.org
 
 Signed-off-by: Asaf Penso <asafp at mellanox.com>
 Reviewed-by: Dekel Peled <dekelp at mellanox.com>
@@ -27,39 +28,39 @@
  1 file changed, 6 insertions(+), 6 deletions(-)
 
 diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c
-index f90cab2961..b9bf83a4b7 100644
+index 48d3031c90..076a30544f 100644
 --- a/drivers/net/mlx5/mlx5_flow_dv.c
 +++ b/drivers/net/mlx5/mlx5_flow_dv.c
-@@ -702,8 +702,8 @@ flow_dv_convert_action_modify_tp
+@@ -697,8 +697,8 @@ flow_dv_convert_action_modify_tp
  		item.spec = &udp;
  		item.mask = &udp_mask;
  		field = modify_udp;
 -	}
 -	if (attr->tcp) {
 +	} else {
-+		MLX5_ASSERT(attr->tcp);
++		assert(attr->tcp);
  		memset(&tcp, 0, sizeof(tcp));
  		memset(&tcp_mask, 0, sizeof(tcp_mask));
  		if (action->type == RTE_FLOW_ACTION_TYPE_SET_TP_SRC) {
-@@ -773,8 +773,8 @@ flow_dv_convert_action_modify_ttl
+@@ -768,8 +768,8 @@ flow_dv_convert_action_modify_ttl
  		item.spec = &ipv4;
  		item.mask = &ipv4_mask;
  		field = modify_ipv4;
 -	}
 -	if (attr->ipv6) {
 +	} else {
-+		MLX5_ASSERT(attr->ipv6);
++		assert(attr->ipv6);
  		memset(&ipv6, 0, sizeof(ipv6));
  		memset(&ipv6_mask, 0, sizeof(ipv6_mask));
  		ipv6.hdr.hop_limits = conf->ttl_value;
-@@ -834,8 +834,8 @@ flow_dv_convert_action_modify_dec_ttl
+@@ -829,8 +829,8 @@ flow_dv_convert_action_modify_dec_ttl
  		item.spec = &ipv4;
  		item.mask = &ipv4_mask;
  		field = modify_ipv4;
 -	}
 -	if (attr->ipv6) {
 +	} else {
-+		MLX5_ASSERT(attr->ipv6);
++		assert(attr->ipv6);
  		memset(&ipv6, 0, sizeof(ipv6));
  		memset(&ipv6_mask, 0, sizeof(ipv6_mask));
  		ipv6.hdr.hop_limits = 0xFF;


More information about the stable mailing list