patch 'ethdev: keep promiscuous/allmulti value before disabling' has been queued to stable release 22.11.9
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Thu Jun 12 23:07:16 CEST 2025
Hi,
FYI, your patch has been queued to stable release 22.11.9
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 06/14/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/bluca/dpdk-stable
This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/b4656b4697bf63efa148d24660e7354c72a65787
Thanks.
Luca Boccassi
---
>From b4656b4697bf63efa148d24660e7354c72a65787 Mon Sep 17 00:00:00 2001
From: Sunyang Wu <sunyang.wu at jaguarmicro.com>
Date: Thu, 22 May 2025 15:42:42 +0800
Subject: [PATCH] ethdev: keep promiscuous/allmulti value before disabling
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ upstream commit 00add16978762a8bcd98cd9465503194dc4c1e9a ]
The values were reset to 0 before calling the driver function
for disabling promiscuous or allmulticast,
which could lead the driver to skip disabling.
The values of the promiscuous and allmulticast variables
are set after calling the driver, according to the return value.
Fixes: af75078fece3 ("first public release")
Signed-off-by: Sunyang Wu <sunyang.wu at jaguarmicro.com>
Signed-off-by: Morten Brørup <mb at smartsharesystems.com>
---
lib/ethdev/rte_ethdev.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/lib/ethdev/rte_ethdev.c b/lib/ethdev/rte_ethdev.c
index f08cf5ccad..75bfc8a299 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -2550,10 +2550,9 @@ rte_eth_promiscuous_disable(uint16_t port_id)
if (*dev->dev_ops->promiscuous_disable == NULL)
return -ENOTSUP;
- dev->data->promiscuous = 0;
diag = (*dev->dev_ops->promiscuous_disable)(dev);
- if (diag != 0)
- dev->data->promiscuous = 1;
+ if (diag == 0)
+ dev->data->promiscuous = 0;
return eth_err(port_id, diag);
}
@@ -2603,10 +2602,10 @@ rte_eth_allmulticast_disable(uint16_t port_id)
if (*dev->dev_ops->allmulticast_disable == NULL)
return -ENOTSUP;
- dev->data->all_multicast = 0;
+
diag = (*dev->dev_ops->allmulticast_disable)(dev);
- if (diag != 0)
- dev->data->all_multicast = 1;
+ if (diag == 0)
+ dev->data->all_multicast = 0;
return eth_err(port_id, diag);
}
--
2.47.2
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2025-06-12 22:06:26.018999467 +0100
+++ 0059-ethdev-keep-promiscuous-allmulti-value-before-disabl.patch 2025-06-12 22:06:23.886044975 +0100
@@ -1 +1 @@
-From 00add16978762a8bcd98cd9465503194dc4c1e9a Mon Sep 17 00:00:00 2001
+From b4656b4697bf63efa148d24660e7354c72a65787 Mon Sep 17 00:00:00 2001
@@ -8,0 +9,2 @@
+[ upstream commit 00add16978762a8bcd98cd9465503194dc4c1e9a ]
+
@@ -17 +18,0 @@
-Cc: stable at dpdk.org
@@ -26 +27 @@
-index d4197322a0..dd7c00bc94 100644
+index f08cf5ccad..75bfc8a299 100644
@@ -29,2 +30,2 @@
-@@ -3044,10 +3044,9 @@ rte_eth_promiscuous_disable(uint16_t port_id)
- if (dev->dev_ops->promiscuous_disable == NULL)
+@@ -2550,10 +2550,9 @@ rte_eth_promiscuous_disable(uint16_t port_id)
+ if (*dev->dev_ops->promiscuous_disable == NULL)
@@ -34 +35 @@
- diag = dev->dev_ops->promiscuous_disable(dev);
+ diag = (*dev->dev_ops->promiscuous_disable)(dev);
@@ -40,3 +41,3 @@
- diag = eth_err(port_id, diag);
-
-@@ -3112,10 +3111,10 @@ rte_eth_allmulticast_disable(uint16_t port_id)
+ return eth_err(port_id, diag);
+ }
+@@ -2603,10 +2602,10 @@ rte_eth_allmulticast_disable(uint16_t port_id)
@@ -44 +45 @@
- if (dev->dev_ops->allmulticast_disable == NULL)
+ if (*dev->dev_ops->allmulticast_disable == NULL)
@@ -48 +49 @@
- diag = dev->dev_ops->allmulticast_disable(dev);
+ diag = (*dev->dev_ops->allmulticast_disable)(dev);
@@ -54,2 +55,2 @@
- diag = eth_err(port_id, diag);
-
+ return eth_err(port_id, diag);
+ }
More information about the stable
mailing list