Browse Source

realtek: actually remove port from multicast portmask

Fixes: 724e4af530cd ("realtek: Store and Restore MC memberships for port enable/disable")
Signed-off-by: Jan Hoffmann <[email protected]>
Jan Hoffmann 2 years ago
parent
commit
3356126b82

+ 1 - 0
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);

+ 1 - 0
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);