patch 'net/tap: free remote flow when implicit rule already exists' has been queued to stable release 24.11.5

luca.boccassi at gmail.com luca.boccassi at gmail.com
Thu Mar 19 23:02:26 CET 2026


Hi,

FYI, your patch has been queued to stable release 24.11.5

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/21/26. 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/bluca/dpdk-stable

This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/69e11d2100cb32d185db08792b07c4345cb55cc1

Thanks.

Luca Boccassi

---
>From 69e11d2100cb32d185db08792b07c4345cb55cc1 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen at networkplumber.org>
Date: Sun, 22 Feb 2026 09:30:47 -0800
Subject: [PATCH] net/tap: free remote flow when implicit rule already exists

[ upstream commit d08dd4fd79ec0640c7efa9987e36d49af2997710 ]

When tap_flow_implicit_create() gets EEXIST from the kernel, the
allocated remote_flow is never freed. Add rte_free() on that path.

Bugzilla ID: 1880
Fixes: 2ef1c0da894a ("net/tap: fix isolation mode toggling")

Signed-off-by: Stephen Hemminger <stephen at networkplumber.org>
---
 drivers/net/tap/tap_flow.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/drivers/net/tap/tap_flow.c b/drivers/net/tap/tap_flow.c
index a1942a9a27..18e7d9cc6a 100644
--- a/drivers/net/tap/tap_flow.c
+++ b/drivers/net/tap/tap_flow.c
@@ -1625,8 +1625,10 @@ int tap_flow_implicit_create(struct pmd_internals *pmd,
 	err = tap_nl_recv_ack(pmd->nlsk_fd);
 	if (err < 0) {
 		/* Silently ignore re-entering existing rule */
-		if (errno == EEXIST)
+		if (errno == EEXIST) {
+			rte_free(remote_flow);
 			goto success;
+		}
 		TAP_LOG(ERR,
 			"Kernel refused TC filter rule creation (%d): %s",
 			errno, strerror(errno));
-- 
2.47.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2026-03-19 22:00:49.034763064 +0000
+++ 0034-net-tap-free-remote-flow-when-implicit-rule-already-.patch	2026-03-19 22:00:47.810359366 +0000
@@ -1 +1 @@
-From d08dd4fd79ec0640c7efa9987e36d49af2997710 Mon Sep 17 00:00:00 2001
+From 69e11d2100cb32d185db08792b07c4345cb55cc1 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit d08dd4fd79ec0640c7efa9987e36d49af2997710 ]
+
@@ -11 +12,0 @@
-Cc: stable at dpdk.org
@@ -19 +20 @@
-index 530f6880c7..cd9dd68804 100644
+index a1942a9a27..18e7d9cc6a 100644
@@ -22 +23 @@
-@@ -1631,8 +1631,10 @@ int tap_flow_implicit_create(struct pmd_internals *pmd,
+@@ -1625,8 +1625,10 @@ int tap_flow_implicit_create(struct pmd_internals *pmd,


More information about the stable mailing list