patch 'ethdev: keep promiscuous/allmulti value before disabling' has been queued to stable release 23.11.5

Xueming Li xuemingl at nvidia.com
Thu Jun 26 14:01:30 CEST 2025


Hi,

FYI, your patch has been queued to stable release 23.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 06/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://git.dpdk.org/dpdk-stable/log/?h=23.11-staging

This queued commit can be viewed at:
https://git.dpdk.org/dpdk-stable/commit/?h=23.11-staging&id=aad19713c88057e2d0a1b636a615a5c42fdee439

Thanks.

Xueming Li <xuemingl at nvidia.com>

---
>From aad19713c88057e2d0a1b636a615a5c42fdee439 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
Cc: Xueming Li <xuemingl at nvidia.com>

[ 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 86fd457f78..704fc3eae2 100644
--- a/lib/ethdev/rte_ethdev.c
+++ b/lib/ethdev/rte_ethdev.c
@@ -2891,10 +2891,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;
 
 	diag = eth_err(port_id, diag);
 
@@ -2956,10 +2955,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;
 
 	diag = eth_err(port_id, diag);
 
-- 
2.34.1

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2025-06-26 19:59:20.405382318 +0800
+++ 0070-ethdev-keep-promiscuous-allmulti-value-before-disabl.patch	2025-06-26 19:59:17.478418040 +0800
@@ -1 +1 @@
-From 00add16978762a8bcd98cd9465503194dc4c1e9a Mon Sep 17 00:00:00 2001
+From aad19713c88057e2d0a1b636a615a5c42fdee439 Mon Sep 17 00:00:00 2001
@@ -7,0 +8,3 @@
+Cc: Xueming Li <xuemingl at nvidia.com>
+
+[ upstream commit 00add16978762a8bcd98cd9465503194dc4c1e9a ]
@@ -17 +19,0 @@
-Cc: stable at dpdk.org
@@ -26 +28 @@
-index d4197322a0..dd7c00bc94 100644
+index 86fd457f78..704fc3eae2 100644
@@ -29,2 +31,2 @@
-@@ -3044,10 +3044,9 @@ rte_eth_promiscuous_disable(uint16_t port_id)
- 	if (dev->dev_ops->promiscuous_disable == NULL)
+@@ -2891,10 +2891,9 @@ rte_eth_promiscuous_disable(uint16_t port_id)
+ 	if (*dev->dev_ops->promiscuous_disable == NULL)
@@ -34 +36 @@
- 	diag = dev->dev_ops->promiscuous_disable(dev);
+ 	diag = (*dev->dev_ops->promiscuous_disable)(dev);
@@ -42 +44 @@
-@@ -3112,10 +3111,10 @@ rte_eth_allmulticast_disable(uint16_t port_id)
+@@ -2956,10 +2955,10 @@ rte_eth_allmulticast_disable(uint16_t port_id)
@@ -44 +46 @@
- 	if (dev->dev_ops->allmulticast_disable == NULL)
+ 	if (*dev->dev_ops->allmulticast_disable == NULL)
@@ -48 +50 @@
- 	diag = dev->dev_ops->allmulticast_disable(dev);
+ 	diag = (*dev->dev_ops->allmulticast_disable)(dev);


More information about the stable mailing list