patch 'net/mlx5/hws: fix crash using represented port without ID' has been queued to stable release 24.11.2

Kevin Traynor ktraynor at redhat.com
Mon Mar 24 17:16:17 CET 2025


Hi,

FYI, your patch has been queued to stable release 24.11.2

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

Thanks.

Kevin

---
>From 9a3c182073ca565958fe5e9c59653e064efa08fc Mon Sep 17 00:00:00 2001
From: Maayan Kashani <mkashani at nvidia.com>
Date: Thu, 27 Feb 2025 12:33:29 +0200
Subject: [PATCH] net/mlx5/hws: fix crash using represented port without ID

[ upstream commit 1de93ca6aee6acb785c8080f84da26b09835af0f ]

For non-template API on top of HWS, when trying to use
represented-port item w/o setting the ethdev_port_id,
it crashes.

Added default values to match the case for SWS.
Default port is now eswitch manager id.

Fixes: c55c2bf35333 ("net/mlx5/hws: add definer layer")

Signed-off-by: Maayan Kashani <mkashani at nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski at nvidia.com>
---
 drivers/net/mlx5/hws/mlx5dr_definer.c | 14 ++++++--------
 1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/drivers/net/mlx5/hws/mlx5dr_definer.c b/drivers/net/mlx5/hws/mlx5dr_definer.c
index 837e0c47bd..399cb1013a 100644
--- a/drivers/net/mlx5/hws/mlx5dr_definer.c
+++ b/drivers/net/mlx5/hws/mlx5dr_definer.c
@@ -744,8 +744,9 @@ mlx5dr_definer_vport_set(struct mlx5dr_definer_fc *fc,
 {
 	const struct rte_flow_item_ethdev *v = item_spec;
-	const struct flow_hw_port_info *port_info;
+	const struct flow_hw_port_info *port_info = NULL;
 	uint32_t regc_value;
 
-	port_info = flow_hw_conv_port_id(fc->dr_ctx, v->port_id);
+	if (v)
+		port_info = flow_hw_conv_port_id(fc->dr_ctx, v->port_id);
 	if (unlikely(!port_info))
 		regc_value = BAD_PORT;
@@ -1557,8 +1558,9 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
 {
 	struct mlx5dr_cmd_query_caps *caps = cd->ctx->caps;
-	const struct rte_flow_item_ethdev *m = item->mask;
+	uint16_t port_id = item->mask ?
+			   ((const struct rte_flow_item_ethdev *)(item->mask))->port_id : 0;
 	struct mlx5dr_definer_fc *fc;
 
-	if (m->port_id) {
+	if (port_id) {
 		if (!caps->wire_regc_mask) {
 			DR_LOG(ERR, "Port ID item not supported, missing wire REGC mask");
@@ -1575,8 +1577,4 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
 		fc->bit_mask = caps->wire_regc_mask >> fc->bit_off;
 		fc->dr_ctx = cd->ctx;
-	} else {
-		DR_LOG(ERR, "Pord ID item mask must specify ID mask");
-		rte_errno = EINVAL;
-		return rte_errno;
 	}
 
-- 
2.48.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-03-24 16:15:15.164897745 +0000
+++ 0010-net-mlx5-hws-fix-crash-using-represented-port-withou.patch	2025-03-24 16:15:14.728735410 +0000
@@ -1 +1 @@
-From 1de93ca6aee6acb785c8080f84da26b09835af0f Mon Sep 17 00:00:00 2001
+From 9a3c182073ca565958fe5e9c59653e064efa08fc Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 1de93ca6aee6acb785c8080f84da26b09835af0f ]
+
@@ -14 +15,0 @@
-Cc: stable at dpdk.org
@@ -23 +24 @@
-index 98d670fc1c..a4b9306d2b 100644
+index 837e0c47bd..399cb1013a 100644
@@ -26 +27 @@
-@@ -773,8 +773,9 @@ mlx5dr_definer_vport_set(struct mlx5dr_definer_fc *fc,
+@@ -744,8 +744,9 @@ mlx5dr_definer_vport_set(struct mlx5dr_definer_fc *fc,
@@ -38 +39 @@
-@@ -1586,8 +1587,9 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
+@@ -1557,8 +1558,9 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
@@ -50 +51 @@
-@@ -1604,8 +1606,4 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,
+@@ -1575,8 +1577,4 @@ mlx5dr_definer_conv_item_port(struct mlx5dr_definer_conv_data *cd,



More information about the stable mailing list