[PATCH net] net: dsa: xrs700x: check if partner is same as port in hsr join

Subsystems: arrow speedchips xrs7000 series ethernet switch driver, networking drivers, networking [dsa], the rest

STALE1977d

3 messages, 3 authors, 2021-03-10 · open the first message on its own page

[PATCH net] net: dsa: xrs700x: check if partner is same as port in hsr join

From: George McCollister <george.mccollister@gmail.com>
Date: 2021-03-08 23:40:54

Don't assign dp to partner if it's the same port that xrs700x_hsr_join
was called with. The partner port is supposed to be the other port in
the HSR/PRP redundant pair not the same port. This fixes an issue
observed in testing where forwarding between redundant HSR ports on this
switch didn't work depending on the order the ports were added to the
hsr device.

Fixes: bd62e6f5e6a9 ("net: dsa: xrs700x: add HSR offloading support")
Signed-off-by: George McCollister <george.mccollister@gmail.com>
---
 drivers/net/dsa/xrs700x/xrs700x.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/net/dsa/xrs700x/xrs700x.c b/drivers/net/dsa/xrs700x/xrs700x.c
index f025f968f96d..fde6e99274b6 100644
--- a/drivers/net/dsa/xrs700x/xrs700x.c
+++ b/drivers/net/dsa/xrs700x/xrs700x.c
@@ -528,7 +528,10 @@ static int xrs700x_hsr_join(struct dsa_switch *ds, int port,
 		return -EOPNOTSUPP;
 
 	dsa_hsr_foreach_port(dp, ds, hsr) {
-		partner = dp;
+		if (dp->index != port) {
+			partner = dp;
+			break;
+		}
 	}
 
 	/* We can't enable redundancy on the switch until both
@@ -582,7 +585,10 @@ static int xrs700x_hsr_leave(struct dsa_switch *ds, int port,
 	unsigned int val;
 
 	dsa_hsr_foreach_port(dp, ds, hsr) {
-		partner = dp;
+		if (dp->index != port) {
+			partner = dp;
+			break;
+		}
 	}
 
 	if (!partner)
-- 
2.11.0

Re: [PATCH net] net: dsa: xrs700x: check if partner is same as port in hsr join

From: Vladimir Oltean <olteanv@gmail.com>
Date: 2021-03-09 00:11:30

On Mon, Mar 08, 2021 at 05:38:22PM -0600, George McCollister wrote:
Don't assign dp to partner if it's the same port that xrs700x_hsr_join
was called with. The partner port is supposed to be the other port in
the HSR/PRP redundant pair not the same port. This fixes an issue
observed in testing where forwarding between redundant HSR ports on this
switch didn't work depending on the order the ports were added to the
hsr device.

Fixes: bd62e6f5e6a9 ("net: dsa: xrs700x: add HSR offloading support")
Signed-off-by: George McCollister <george.mccollister@gmail.com>
---
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>

Re: [PATCH net] net: dsa: xrs700x: check if partner is same as port in hsr join

From: patchwork-bot+netdevbpf@kernel.org
Date: 2021-03-10 00:21:05

Hello:

This patch was applied to netdev/net.git (refs/heads/master):

On Mon,  8 Mar 2021 17:38:22 -0600 you wrote:
Don't assign dp to partner if it's the same port that xrs700x_hsr_join
was called with. The partner port is supposed to be the other port in
the HSR/PRP redundant pair not the same port. This fixes an issue
observed in testing where forwarding between redundant HSR ports on this
switch didn't work depending on the order the ports were added to the
hsr device.

[...]
Here is the summary with links:
  - [net] net: dsa: xrs700x: check if partner is same as port in hsr join
    https://git.kernel.org/netdev/net/c/286a8624d7f9

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help