patch 'net/mlx5: fix action flag data type' has been queued to stable release 21.11.3

Kevin Traynor ktraynor at redhat.com
Wed Nov 23 19:03:25 CET 2022


Hi,

FYI, your patch has been queued to stable release 21.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 11/28/22. 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/kevintraynor/dpdk-stable

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/97b4706f1e9d10d414cda20aec6f5b4b79e9da32

Thanks.

Kevin

---
>From 97b4706f1e9d10d414cda20aec6f5b4b79e9da32 Mon Sep 17 00:00:00 2001
From: Shun Hao <shunh at nvidia.com>
Date: Tue, 1 Nov 2022 12:07:24 +0200
Subject: [PATCH] net/mlx5: fix action flag data type

[ upstream commit e5517406963b07fa117e499a0474869dc236a1a6 ]

MLX5_FLOW_ACTION flags are used as uint64_t now, but some old flags
are not defined as 64 bits. So if they are type casted to uint64 after
bitwise operations, the high 32-bit data might be incorrect.

E.g. Currently MLX5_FLOW_ACTION_DROP is defined as 0x1u, when it is used
like:
	(action_flags & ~MLX5_FLOW_ACTION_DROP)
action_flags is uint64_t so (~MLX5_FLOW_ACTION_DROP) will be casted to
uint64_t as well, but its high 32 bits will be all 0s. This will make the
result not as expected.

This patch fixes this by making all action flags definition as 64-bit
data type.

Fixes: 4b7bf3ffb473 ("net/mlx5: support yellow in meter policy validation")

Signed-off-by: Shun Hao <shunh at nvidia.com>
Acked-by: Matan Azrad <matan at nvidia.com>
---
 drivers/net/mlx5/mlx5_flow.h | 56 ++++++++++++++++++------------------
 1 file changed, 28 insertions(+), 28 deletions(-)

diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h
index 29ccb98351..094e483325 100644
--- a/drivers/net/mlx5/mlx5_flow.h
+++ b/drivers/net/mlx5/mlx5_flow.h
@@ -225,32 +225,32 @@ enum mlx5_feature_name {
 
 /* Actions */
-#define MLX5_FLOW_ACTION_DROP (1u << 0)
-#define MLX5_FLOW_ACTION_QUEUE (1u << 1)
-#define MLX5_FLOW_ACTION_RSS (1u << 2)
-#define MLX5_FLOW_ACTION_FLAG (1u << 3)
-#define MLX5_FLOW_ACTION_MARK (1u << 4)
-#define MLX5_FLOW_ACTION_COUNT (1u << 5)
-#define MLX5_FLOW_ACTION_PORT_ID (1u << 6)
-#define MLX5_FLOW_ACTION_OF_POP_VLAN (1u << 7)
-#define MLX5_FLOW_ACTION_OF_PUSH_VLAN (1u << 8)
-#define MLX5_FLOW_ACTION_OF_SET_VLAN_VID (1u << 9)
-#define MLX5_FLOW_ACTION_OF_SET_VLAN_PCP (1u << 10)
-#define MLX5_FLOW_ACTION_SET_IPV4_SRC (1u << 11)
-#define MLX5_FLOW_ACTION_SET_IPV4_DST (1u << 12)
-#define MLX5_FLOW_ACTION_SET_IPV6_SRC (1u << 13)
-#define MLX5_FLOW_ACTION_SET_IPV6_DST (1u << 14)
-#define MLX5_FLOW_ACTION_SET_TP_SRC (1u << 15)
-#define MLX5_FLOW_ACTION_SET_TP_DST (1u << 16)
-#define MLX5_FLOW_ACTION_JUMP (1u << 17)
-#define MLX5_FLOW_ACTION_SET_TTL (1u << 18)
-#define MLX5_FLOW_ACTION_DEC_TTL (1u << 19)
-#define MLX5_FLOW_ACTION_SET_MAC_SRC (1u << 20)
-#define MLX5_FLOW_ACTION_SET_MAC_DST (1u << 21)
-#define MLX5_FLOW_ACTION_ENCAP (1u << 22)
-#define MLX5_FLOW_ACTION_DECAP (1u << 23)
-#define MLX5_FLOW_ACTION_INC_TCP_SEQ (1u << 24)
-#define MLX5_FLOW_ACTION_DEC_TCP_SEQ (1u << 25)
-#define MLX5_FLOW_ACTION_INC_TCP_ACK (1u << 26)
-#define MLX5_FLOW_ACTION_DEC_TCP_ACK (1u << 27)
+#define MLX5_FLOW_ACTION_DROP (1ull << 0)
+#define MLX5_FLOW_ACTION_QUEUE (1ull << 1)
+#define MLX5_FLOW_ACTION_RSS (1ull << 2)
+#define MLX5_FLOW_ACTION_FLAG (1ull << 3)
+#define MLX5_FLOW_ACTION_MARK (1ull << 4)
+#define MLX5_FLOW_ACTION_COUNT (1ull << 5)
+#define MLX5_FLOW_ACTION_PORT_ID (1ull << 6)
+#define MLX5_FLOW_ACTION_OF_POP_VLAN (1ull << 7)
+#define MLX5_FLOW_ACTION_OF_PUSH_VLAN (1ull << 8)
+#define MLX5_FLOW_ACTION_OF_SET_VLAN_VID (1ull << 9)
+#define MLX5_FLOW_ACTION_OF_SET_VLAN_PCP (1ull << 10)
+#define MLX5_FLOW_ACTION_SET_IPV4_SRC (1ull << 11)
+#define MLX5_FLOW_ACTION_SET_IPV4_DST (1ull << 12)
+#define MLX5_FLOW_ACTION_SET_IPV6_SRC (1ull << 13)
+#define MLX5_FLOW_ACTION_SET_IPV6_DST (1ull << 14)
+#define MLX5_FLOW_ACTION_SET_TP_SRC (1ull << 15)
+#define MLX5_FLOW_ACTION_SET_TP_DST (1ull << 16)
+#define MLX5_FLOW_ACTION_JUMP (1ull << 17)
+#define MLX5_FLOW_ACTION_SET_TTL (1ull << 18)
+#define MLX5_FLOW_ACTION_DEC_TTL (1ull << 19)
+#define MLX5_FLOW_ACTION_SET_MAC_SRC (1ull << 20)
+#define MLX5_FLOW_ACTION_SET_MAC_DST (1ull << 21)
+#define MLX5_FLOW_ACTION_ENCAP (1ull << 22)
+#define MLX5_FLOW_ACTION_DECAP (1ull << 23)
+#define MLX5_FLOW_ACTION_INC_TCP_SEQ (1ull << 24)
+#define MLX5_FLOW_ACTION_DEC_TCP_SEQ (1ull << 25)
+#define MLX5_FLOW_ACTION_INC_TCP_ACK (1ull << 26)
+#define MLX5_FLOW_ACTION_DEC_TCP_ACK (1ull << 27)
 #define MLX5_FLOW_ACTION_SET_TAG (1ull << 28)
 #define MLX5_FLOW_ACTION_MARK_EXT (1ull << 29)
-- 
2.38.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2022-11-23 09:55:57.391397221 +0000
+++ 0012-net-mlx5-fix-action-flag-data-type.patch	2022-11-23 09:55:57.017149176 +0000
@@ -1 +1 @@
-From e5517406963b07fa117e499a0474869dc236a1a6 Mon Sep 17 00:00:00 2001
+From 97b4706f1e9d10d414cda20aec6f5b4b79e9da32 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit e5517406963b07fa117e499a0474869dc236a1a6 ]
+
@@ -21 +22,0 @@
-Cc: stable at dpdk.org
@@ -30 +31 @@
-index da9b65d8fe..91691806ad 100644
+index 29ccb98351..094e483325 100644
@@ -33 +34 @@
-@@ -259,32 +259,32 @@ enum mlx5_feature_name {
+@@ -225,32 +225,32 @@ enum mlx5_feature_name {



More information about the stable mailing list