patch 'net/nfp: fix metering cleanup' has been queued to stable release 24.11.4

Kevin Traynor ktraynor at redhat.com
Fri Nov 21 12:20:22 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/0fd967569d473399c42202dae350f90d711e29de

Thanks.

Kevin

---
>From 0fd967569d473399c42202dae350f90d711e29de Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen at networkplumber.org>
Date: Mon, 3 Nov 2025 21:29:15 -0800
Subject: [PATCH] net/nfp: fix metering cleanup

[ upstream commit 080b02cd66cb2b0a08c4903b7f51a10f0ba8c37f ]

The code to cleanup metering was using the objects after calling
rte_free(). Fix by using LISTFOREACH_SAFE

Fixes: 2caf84a71cfd ("net/nfp: add meter options")

Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
 drivers/net/nfp/nfp_mtr.c | 19 +++++++++++++------
 1 file changed, 13 insertions(+), 6 deletions(-)

diff --git a/drivers/net/nfp/nfp_mtr.c b/drivers/net/nfp/nfp_mtr.c
index d4f2c4f2f0..4833ebd881 100644
--- a/drivers/net/nfp/nfp_mtr.c
+++ b/drivers/net/nfp/nfp_mtr.c
@@ -13,4 +13,11 @@
 #include "nfp_logs.h"
 
+#ifndef LIST_FOREACH_SAFE
+#define	LIST_FOREACH_SAFE(var, head, field, tvar)			\
+	for ((var) = LIST_FIRST((head));				\
+	    (var) && ((tvar) = LIST_NEXT((var), field), 1);		\
+	    (var) = (tvar))
+#endif
+
 #define NFP_MAX_POLICY_CNT             NFP_MAX_MTR_CNT
 #define NFP_MAX_PROFILE_CNT            NFP_MAX_MTR_CNT
@@ -1125,8 +1132,8 @@ void
 nfp_mtr_priv_uninit(struct nfp_pf_dev *pf_dev)
 {
-	struct nfp_mtr *mtr;
+	struct nfp_mtr *mtr, *tmp_mtr;
 	struct nfp_mtr_priv *priv;
-	struct nfp_mtr_policy *mtr_policy;
-	struct nfp_mtr_profile *mtr_profile;
+	struct nfp_mtr_policy *mtr_policy, *tmp_policy;
+	struct nfp_mtr_profile *mtr_profile, *tmp_profile;
 	struct nfp_app_fw_flower *app_fw_flower;
 
@@ -1136,15 +1143,15 @@ nfp_mtr_priv_uninit(struct nfp_pf_dev *pf_dev)
 	rte_eal_alarm_cancel(nfp_mtr_stats_request, (void *)app_fw_flower);
 
-	LIST_FOREACH(mtr, &priv->mtrs, next) {
+	LIST_FOREACH_SAFE(mtr, &priv->mtrs, next, tmp_mtr) {
 		LIST_REMOVE(mtr, next);
 		rte_free(mtr);
 	}
 
-	LIST_FOREACH(mtr_profile, &priv->profiles, next) {
+	LIST_FOREACH_SAFE(mtr_profile, &priv->profiles, next, tmp_profile) {
 		LIST_REMOVE(mtr_profile, next);
 		rte_free(mtr_profile);
 	}
 
-	LIST_FOREACH(mtr_policy, &priv->policies, next) {
+	LIST_FOREACH_SAFE(mtr_policy, &priv->policies, next, tmp_policy) {
 		LIST_REMOVE(mtr_policy, next);
 		rte_free(mtr_policy);
-- 
2.51.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-11-21 11:05:10.779737838 +0000
+++ 0038-net-nfp-fix-metering-cleanup.patch	2025-11-21 11:05:09.434201045 +0000
@@ -1 +1 @@
-From 080b02cd66cb2b0a08c4903b7f51a10f0ba8c37f Mon Sep 17 00:00:00 2001
+From 0fd967569d473399c42202dae350f90d711e29de Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 080b02cd66cb2b0a08c4903b7f51a10f0ba8c37f ]
+
@@ -10 +11,0 @@
-Cc: stable at dpdk.org



More information about the stable mailing list