patch 'net/bonding: fix flow flush order on close' has been queued to stable release 20.11.7
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Sat Nov 5 18:11:20 CET 2022
Hi,
FYI, your patch has been queued to stable release 20.11.7
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/07/22. 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/a6f0c4fd618fa07befd885004f43cfc181ad92c7
Thanks.
Luca Boccassi
---
>From a6f0c4fd618fa07befd885004f43cfc181ad92c7 Mon Sep 17 00:00:00 2001
From: Ivan Malov <ivan.malov at oktetlabs.ru>
Date: Wed, 19 Oct 2022 14:18:05 +0300
Subject: [PATCH] net/bonding: fix flow flush order on close
[ upstream commit df810d1b6e31a3e25085a6abae3be119af3034c1 ]
The current code first removes all back-end devices of
the bonded device and then invokes flush operation to
remove flows in such back-end devices, which makes no
sense. Fix that by re-ordering the steps accordingly.
Fixes: 49dad9028e2a ("net/bonding: support flow API")
Signed-off-by: Ivan Malov <ivan.malov at oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
---
drivers/net/bonding/rte_eth_bond_pmd.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index f426c66b69..d5dac1ef3e 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -2140,6 +2140,10 @@ bond_ethdev_close(struct rte_eth_dev *dev)
return 0;
RTE_BOND_LOG(INFO, "Closing bonded device %s", dev->device->name);
+
+ /* Flush flows in all back-end devices before removing them */
+ bond_flow_ops.flush(dev, &ferror);
+
while (internals->slave_count != skipped) {
uint16_t port_id = internals->slaves[skipped].port_id;
@@ -2157,7 +2161,6 @@ bond_ethdev_close(struct rte_eth_dev *dev)
skipped++;
}
}
- bond_flow_ops.flush(dev, &ferror);
bond_ethdev_free_queues(dev);
rte_bitmap_reset(internals->vlan_filter_bmp);
rte_bitmap_free(internals->vlan_filter_bmp);
--
2.34.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2022-11-05 17:11:10.507316626 +0000
+++ 0021-net-bonding-fix-flow-flush-order-on-close.patch 2022-11-05 17:11:08.638941869 +0000
@@ -1 +1 @@
-From df810d1b6e31a3e25085a6abae3be119af3034c1 Mon Sep 17 00:00:00 2001
+From a6f0c4fd618fa07befd885004f43cfc181ad92c7 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit df810d1b6e31a3e25085a6abae3be119af3034c1 ]
+
@@ -12 +13,0 @@
-Cc: stable at dpdk.org
@@ -17,2 +18,2 @@
- drivers/net/bonding/rte_eth_bond_pmd.c | 4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
+ drivers/net/bonding/rte_eth_bond_pmd.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
@@ -21 +22 @@
-index 486b7fc9f7..51d543e5de 100644
+index f426c66b69..d5dac1ef3e 100644
@@ -24,3 +25,2 @@
-@@ -2156,6 +2156,9 @@ bond_ethdev_cfg_cleanup(struct rte_eth_dev *dev)
- int skipped = 0;
- struct rte_flow_error ferror;
+@@ -2140,6 +2140,10 @@ bond_ethdev_close(struct rte_eth_dev *dev)
+ return 0;
@@ -27,0 +28,2 @@
+ RTE_BOND_LOG(INFO, "Closing bonded device %s", dev->device->name);
++
@@ -34 +36 @@
-@@ -2173,7 +2176,6 @@ bond_ethdev_cfg_cleanup(struct rte_eth_dev *dev)
+@@ -2157,7 +2161,6 @@ bond_ethdev_close(struct rte_eth_dev *dev)
@@ -39,3 +41,3 @@
- }
-
- int
+ bond_ethdev_free_queues(dev);
+ rte_bitmap_reset(internals->vlan_filter_bmp);
+ rte_bitmap_free(internals->vlan_filter_bmp);
More information about the stable
mailing list