[openwrt/openwrt] realtek: actually remove port from multicast portmask

LEDE Commits lede-commits at lists.infradead.org
Sun May 7 10:17:46 PDT 2023


svanheule pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/3356126b8263a5176bd1b633d428865fb0a4ced5

commit 3356126b8263a5176bd1b633d428865fb0a4ced5
Author: Jan Hoffmann <jan at 3e8.eu>
AuthorDate: Sun May 7 01:05:32 2023 +0200

    realtek: actually remove port from multicast portmask
    
    Fixes: 724e4af530cd ("realtek: Store and Restore MC memberships for port enable/disable")
    Signed-off-by: Jan Hoffmann <jan at 3e8.eu>
---
 target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c | 1 +
 target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c | 1 +
 2 files changed, 2 insertions(+)

diff --git a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c
index e45919d8b5..bdcbb0a074 100644
--- a/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c
+++ b/target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c
@@ -1024,6 +1024,7 @@ static u64 rtl83xx_mc_group_del_port(struct rtl838x_switch_priv *priv, int mc_gr
 		pr_info("%s: %d is lag slave. ignore\n", __func__, port);
 		return portmask;
 	}
+	portmask &= ~BIT_ULL(port);
 	priv->r->write_mcast_pmask(mc_group, portmask);
 	if (portmask == BIT_ULL(priv->cpu_port)) {
 		portmask &= ~BIT_ULL(priv->cpu_port);
diff --git a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c
index 43b6d502f7..811c897234 100644
--- a/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c
+++ b/target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c
@@ -1011,6 +1011,7 @@ static u64 rtl83xx_mc_group_del_port(struct rtl838x_switch_priv *priv, int mc_gr
 		pr_info("%s: %d is lag slave. ignore\n", __func__, port);
 		return portmask;
 	}
+	portmask &= ~BIT_ULL(port);
 	priv->r->write_mcast_pmask(mc_group, portmask);
 	if (portmask == BIT_ULL(priv->cpu_port)) {
 		portmask &= ~BIT_ULL(priv->cpu_port);




More information about the lede-commits mailing list