[PATCH 4/6] realtek: actually remove port from multicast portmask
Jan Hoffmann
jan at 3e8.eu
Fri Mar 3 13:48:44 PST 2023
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 b68b39773410..e0c43ca743d1 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
@@ -1017,6 +1017,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 1ff2710353d8..dd29dc0ce400 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
@@ -1004,6 +1004,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);
--
2.39.1
More information about the openwrt-devel
mailing list