[dpdk-stable] patch 'net/bonding: fix MAC address when one port resets' has been queued to LTS release 18.11.10

Kevin Traynor ktraynor at redhat.com
Fri Aug 28 12:12:32 CEST 2020


Hi,

FYI, your patch has been queued to LTS release 18.11.10

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 09/02/20. 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-queue

This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable-queue/commit/84c299a22d28f9e24afdb8d5f2ccea987b0f732e

Thanks.

Kevin.

---
>From 84c299a22d28f9e24afdb8d5f2ccea987b0f732e Mon Sep 17 00:00:00 2001
From: "Wei Hu (Xavier)" <xavier.huwei at huawei.com>
Date: Fri, 17 Apr 2020 16:19:18 +0800
Subject: [PATCH] net/bonding: fix MAC address when one port resets

[ upstream commit 2d944002762e85e351be7cea432919f159d2ecae ]

The current bonding PMD driver call mac_address_slaves_update function
to modify the MAC address of all slaves devices. In
mac_address_slaves_update function, the rte_eth_dev_default_mac_addr_set
API function is called to set the MAC address of the slave devices in
turn in the for loop statement.

When one port reset, calling rte_eth_dev_default_mac_addr_set API fails
because the firmware will not respond to the commands from the driver,
and exit the loop, so other slave devices cannot continue to update the
MAC address.

This patch fixes the issue by avoid exiting the loop when calling
rte_eth_dev_default_mac_addr_set fails.

Fixes: 2efb58cbab6e ("bond: new link bonding library")

Signed-off-by: Hongbo Zheng <zhenghongbo3 at huawei.com>
Signed-off-by: Wei Hu (Xavier) <xavier.huwei at huawei.com>
Signed-off-by: Chunsong Feng <fengchunsong at huawei.com>
Signed-off-by: Xuan Li <lixuan47 at hisilicon.com>
---
 drivers/net/bonding/rte_eth_bond_pmd.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index d7fb9db0cc..8b410ff19b 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -1457,4 +1457,5 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
 {
 	struct bond_dev_private *internals = bonded_eth_dev->data->dev_private;
+	bool set;
 	int i;
 
@@ -1484,4 +1485,5 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
 	case BONDING_MODE_ALB:
 	default:
+		set = true;
 		for (i = 0; i < internals->slave_count; i++) {
 			if (internals->slaves[i].port_id ==
@@ -1492,5 +1494,5 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
 					RTE_BOND_LOG(ERR, "Failed to update port Id %d MAC address",
 							internals->current_primary_port);
-					return -1;
+					set = false;
 				}
 			} else {
@@ -1500,8 +1502,9 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
 					RTE_BOND_LOG(ERR, "Failed to update port Id %d MAC address",
 							internals->slaves[i].port_id);
-					return -1;
 				}
 			}
 		}
+		if (!set)
+			return -1;
 	}
 
-- 
2.26.2

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2020-08-28 11:03:26.116365555 +0100
+++ 0006-net-bonding-fix-MAC-address-when-one-port-resets.patch	2020-08-28 11:03:25.902955299 +0100
@@ -1 +1 @@
-From 2d944002762e85e351be7cea432919f159d2ecae Mon Sep 17 00:00:00 2001
+From 84c299a22d28f9e24afdb8d5f2ccea987b0f732e Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 2d944002762e85e351be7cea432919f159d2ecae ]
+
@@ -21 +22,0 @@
-Cc: stable at dpdk.org
@@ -32 +33 @@
-index 6f361c7b2c..116e2f29de 100644
+index d7fb9db0cc..8b410ff19b 100644
@@ -35 +36 @@
-@@ -1503,4 +1503,5 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
+@@ -1457,4 +1457,5 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
@@ -41 +42 @@
-@@ -1530,4 +1531,5 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
+@@ -1484,4 +1485,5 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
@@ -47 +48 @@
-@@ -1538,5 +1540,5 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
+@@ -1492,5 +1494,5 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
@@ -54 +55 @@
-@@ -1546,8 +1548,9 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)
+@@ -1500,8 +1502,9 @@ mac_address_slaves_update(struct rte_eth_dev *bonded_eth_dev)



More information about the stable mailing list