aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/realtek
diff options
context:
space:
mode:
authorJan Hoffmann <jan@3e8.eu>2023-05-07 01:05:32 +0200
committerSander Vanheule <sander@svanheule.net>2023-05-07 19:09:01 +0200
commit3356126b8263a5176bd1b633d428865fb0a4ced5 (patch)
tree00919e5e25213891258051ca24de28c3018614f5 /target/linux/realtek
parent57df840670b6038866ebed877ed9827276b730fe (diff)
downloadupstream-3356126b8263a5176bd1b633d428865fb0a4ced5.tar.gz
upstream-3356126b8263a5176bd1b633d428865fb0a4ced5.tar.bz2
upstream-3356126b8263a5176bd1b633d428865fb0a4ced5.zip
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@3e8.eu>
Diffstat (limited to 'target/linux/realtek')
-rw-r--r--target/linux/realtek/files-5.10/drivers/net/dsa/rtl83xx/dsa.c1
-rw-r--r--target/linux/realtek/files-5.15/drivers/net/dsa/rtl83xx/dsa.c1
2 files changed, 2 insertions, 0 deletions
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);