From 993a44b24c4d0b3f8a24e3a82271189e0a73c779 Mon Sep 17 00:00:00 2001 From: Sven Eckelmann Date: Sat, 8 Nov 2025 08:29:27 +0100 Subject: [PATCH] realtek: dsa: Add non-primary LAG ports to port matrix If ports of a RTL93xx switch are not added to a port matrix then they are not used for the link aggregation. As result, communication will then just break on non-primary interfaces. This can be reproduced in balanced-xor and 802.3ad bandwidth mode. Signed-off-by: Sven Eckelmann Link: https://github.com/openwrt/openwrt/pull/20729 Signed-off-by: Robert Marko --- .../files-6.12/drivers/net/dsa/rtl83xx/dsa.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c index dc31544377..bfdbbf6db6 100644 --- a/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c +++ b/target/linux/realtek/files-6.12/drivers/net/dsa/rtl83xx/dsa.c @@ -1378,11 +1378,6 @@ static int rtldsa_port_enable(struct dsa_switch *ds, int port, struct phy_device /* add port to switch mask of CPU_PORT */ priv->r->traffic_enable(priv->cpu_port, port); - if (priv->lag_non_primary & BIT_ULL(port)) { - pr_debug("%s: %d is lag slave. ignore\n", __func__, port); - return 0; - } - /* add all other ports in the same bridge to switch mask of port */ priv->r->traffic_set(port, priv->ports[port].pm); @@ -1479,9 +1474,6 @@ static void rtldsa_update_port_member(struct rtl838x_switch_priv *priv, int port if (!dsa_port_offloads_bridge_dev(other_dp, bridge_dev)) continue; - if (join && priv->lag_non_primary & BIT_ULL(other_port)) - continue; - isolated = p->isolated && other_p->isolated; if (join && !isolated) { @@ -1508,11 +1500,6 @@ static int rtldsa_port_bridge_join(struct dsa_switch *ds, int port, struct dsa_b pr_debug("%s %x: %d", __func__, (u32)priv, port); - if (priv->lag_non_primary & BIT_ULL(port)) { - pr_debug("%s: %d is lag slave. ignore\n", __func__, port); - return 0; - } - /* reset to default flags for new net_bridge_port */ priv->ports[port].isolated = false; -- 2.30.2