[openwrt/openwrt] realtek: dsa: Add non-primary LAG ports to port matrix

LEDE Commits lede-commits at lists.infradead.org
Sat Nov 15 02:17:25 PST 2025


robimarko pushed a commit to openwrt/openwrt.git, branch main:
https://git.openwrt.org/993a44b24c4d0b3f8a24e3a82271189e0a73c779

commit 993a44b24c4d0b3f8a24e3a82271189e0a73c779
Author: Sven Eckelmann <se at simonwunderlich.de>
AuthorDate: Sat Nov 8 08:29:27 2025 +0100

    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 <se at simonwunderlich.de>
    Link: https://github.com/openwrt/openwrt/pull/20729
    Signed-off-by: Robert Marko <robimarko at gmail.com>
---
 .../linux/realtek/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;
 




More information about the lede-commits mailing list