patch 'net/mlx5: fix send to kernel action resources release' has been queued to stable release 24.11.4
Kevin Traynor
ktraynor at redhat.com
Fri Nov 21 12:21:10 CET 2025
Hi,
FYI, your patch has been queued to stable release 24.11.4
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/26/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/6b7221e37eb5a55c28848a276739dfffb6460f12
Thanks.
Kevin
---
>From 6b7221e37eb5a55c28848a276739dfffb6460f12 Mon Sep 17 00:00:00 2001
From: Gregory Etelson <getelson at nvidia.com>
Date: Wed, 12 Nov 2025 18:24:40 +0200
Subject: [PATCH] net/mlx5: fix send to kernel action resources release
[ upstream commit 472b0994319198090e44a7c2de1e43f0a0e0a270 ]
In the MLX5 PMD hierarchy a flow table is bound to a domain object.
A domain object can be released if it does not reference any flow
tables.
When the PMD creates a send to kernel flow action, it also creates
a dedicated flow table for that action.
The PMD called for Rx, Tx and FDB domain destruction before it
destroyed send to kernel resources - flow action and flow table.
As a result, domain destruction could not be completed.
The patch moves send to kernel actions and tables destruction before
domain destruction.
Fixes: f31a141e6478 ("net/mlx5: add send to kernel action resource holder")
Signed-off-by: Gregory Etelson <getelson at nvidia.com>
Acked-by: Dariusz Sosnowski <dsosnowski at nvidia.com>
---
drivers/net/mlx5/linux/mlx5_os.c | 40 ++++++++++++++++++++------------
1 file changed, 25 insertions(+), 15 deletions(-)
diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c
index de037b25f1..f8197a22bc 100644
--- a/drivers/net/mlx5/linux/mlx5_os.c
+++ b/drivers/net/mlx5/linux/mlx5_os.c
@@ -738,4 +738,28 @@ error:
}
+#ifdef HAVE_MLX5DV_DR
+static void
+mlx5_destroy_send_to_kernel_action(struct mlx5_dev_ctx_shared *sh)
+{
+ int i;
+
+ for (i = 0; i < MLX5DR_TABLE_TYPE_MAX; i++) {
+ if (sh->send_to_kernel_action[i].action) {
+ void *action = sh->send_to_kernel_action[i].action;
+
+ mlx5_glue->destroy_flow_action(action);
+ sh->send_to_kernel_action[i].action = NULL;
+ }
+ if (sh->send_to_kernel_action[i].tbl) {
+ struct mlx5_flow_tbl_resource *tbl =
+ sh->send_to_kernel_action[i].tbl;
+
+ flow_dv_tbl_resource_release(sh, tbl);
+ sh->send_to_kernel_action[i].tbl = NULL;
+ }
+ }
+}
+#endif /* HAVE_MLX5DV_DR */
+
/**
* Destroy DR related data within private structure.
@@ -764,4 +788,5 @@ mlx5_os_free_shared_dr(struct mlx5_priv *priv)
MLX5_ASSERT(LIST_EMPTY(&sh->shared_rxqs));
#ifdef HAVE_MLX5DV_DR
+ mlx5_destroy_send_to_kernel_action(sh);
if (sh->rx_domain) {
mlx5_glue->dr_destroy_domain(sh->rx_domain);
@@ -786,19 +811,4 @@ mlx5_os_free_shared_dr(struct mlx5_priv *priv)
sh->pop_vlan_action = NULL;
}
- for (i = 0; i < MLX5DR_TABLE_TYPE_MAX; i++) {
- if (sh->send_to_kernel_action[i].action) {
- void *action = sh->send_to_kernel_action[i].action;
-
- mlx5_glue->destroy_flow_action(action);
- sh->send_to_kernel_action[i].action = NULL;
- }
- if (sh->send_to_kernel_action[i].tbl) {
- struct mlx5_flow_tbl_resource *tbl =
- sh->send_to_kernel_action[i].tbl;
-
- flow_dv_tbl_resource_release(sh, tbl);
- sh->send_to_kernel_action[i].tbl = NULL;
- }
- }
#endif /* HAVE_MLX5DV_DR */
if (sh->default_miss_action)
--
2.51.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-11-21 11:05:12.232959763 +0000
+++ 0086-net-mlx5-fix-send-to-kernel-action-resources-release.patch 2025-11-21 11:05:09.589201707 +0000
@@ -1 +1 @@
-From 472b0994319198090e44a7c2de1e43f0a0e0a270 Mon Sep 17 00:00:00 2001
+From 6b7221e37eb5a55c28848a276739dfffb6460f12 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 472b0994319198090e44a7c2de1e43f0a0e0a270 ]
+
@@ -21 +22,0 @@
-Cc: stable at dpdk.org
@@ -30 +31 @@
-index dba3b61b68..8026a68702 100644
+index de037b25f1..f8197a22bc 100644
More information about the stable
mailing list