diff mbox series

[v2] realtek: Fix VLAN issues introduced by multicast patches

Message ID 20210509100416.27537-1-bjorn@mork.no
State Accepted
Delegated to: Petr Štetiar
Headers show
Series [v2] realtek: Fix VLAN issues introduced by multicast patches | expand

Commit Message

Bjørn Mork May 9, 2021, 10:04 a.m. UTC
From: Birger Koblitz <mail@birger-koblitz.de>

This adds the CPU port to the unknown multicast flooding port mask,
which fixes the VLAN issues introduced by the multicast group patches

Signed-off-by: Birger Koblitz <mail@birger-koblitz.de>
Signed-off-by: Bjørn Mork <bjorn@mork.no> [whitespace fix]
---
Massaged through sed -e 's/^.        /\+	/'


Bjørn

 .../realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c     | 2 +-
 .../realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c     | 2 +-
 .../realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c     | 6 +++---
 3 files changed, 5 insertions(+), 5 deletions(-)

Comments

Daniel Golle May 9, 2021, 2 p.m. UTC | #1
On Sun, May 09, 2021 at 12:04:16PM +0200, Bjørn Mork wrote:
> From: Birger Koblitz <mail@birger-koblitz.de>
> 
> This adds the CPU port to the unknown multicast flooding port mask,
> which fixes the VLAN issues introduced by the multicast group patches
> 
> Signed-off-by: Birger Koblitz <mail@birger-koblitz.de>
> Signed-off-by: Bjørn Mork <bjorn@mork.no> [whitespace fix]
> ---
> Massaged through sed -e 's/^.        /\+	/'
> 
> 
> Bjørn
> 
>  .../realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c     | 2 +-
>  .../realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c     | 2 +-
>  .../realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c     | 6 +++---
>  3 files changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c
> index dfd773c5e6fc..f2bac01ffa62 100644
> --- a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c
> +++ b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c
> @@ -398,7 +398,7 @@ static void rtl838x_vlan_profile_setup(int profile)
>  	 * On RTL93XX, the portmask is directly set in the profile,
>  	 * see e.g. rtl9300_vlan_profile_setup
>  	 */
> -	rtl838x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0xfffffff);
> +	rtl838x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0x1fffffff);
>  }
>  
>  static inline int rtl838x_vlan_port_egr_filter(int port)
> diff --git a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c
> index 74472461a15b..c7e827b67494 100644
> --- a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c
> +++ b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c
> @@ -411,7 +411,7 @@ static void rtl839x_vlan_profile_setup(int profile)
>  	sw_w32(p[0], RTL839X_VLAN_PROFILE(profile));
>  	sw_w32(p[1], RTL839X_VLAN_PROFILE(profile) + 4);
>  
> -	rtl839x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0x000fffffffffffff);
> +	rtl839x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0x001fffffffffffff);
>  }
>  
>  static inline int rtl839x_vlan_port_egr_filter(int port)
> diff --git a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c
> index 820c78165a3c..4f590621bea6 100644
> --- a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c
> +++ b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c
> @@ -153,9 +153,9 @@ static void rtl930x_vlan_profile_setup(int profile)
>  
>  	// Enable routing of Ipv4/6 Unicast and IPv4/6 Multicast traffic
>  	p[0] |= BIT(17) | BIT(16) | BIT(13) | BIT(12);
> -	p[2] = 0x0fffffff; // L2 unknwon MC flooding portmask: all but the CPU-port
> -	p[3] = 0x0fffffff; // IPv4 unknwon MC flooding portmask
> -	p[4] = 0x0fffffff; // IPv6 unknwon MC flooding portmask
> +	p[2] = 0x1fffffff; // L2 unknwon MC flooding portmask all ports, including the CPU-port
> +	p[3] = 0x1fffffff; // IPv4 unknwon MC flooding portmask
> +	p[4] = 0x1fffffff; // IPv6 unknwon MC flooding portmask
                                  ^^^^^^^^^
Maybe also fix that typo while at it ;)


>  
>  	sw_w32(p[0], RTL930X_VLAN_PROFILE_SET(profile));
>  	sw_w32(p[1], RTL930X_VLAN_PROFILE_SET(profile) + 4);
> -- 
> 2.20.1
> 
> 
> _______________________________________________
> openwrt-devel mailing list
> openwrt-devel@lists.openwrt.org
> https://lists.openwrt.org/mailman/listinfo/openwrt-devel
diff mbox series

Patch

diff --git a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c
index dfd773c5e6fc..f2bac01ffa62 100644
--- a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c
+++ b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl838x.c
@@ -398,7 +398,7 @@  static void rtl838x_vlan_profile_setup(int profile)
 	 * On RTL93XX, the portmask is directly set in the profile,
 	 * see e.g. rtl9300_vlan_profile_setup
 	 */
-	rtl838x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0xfffffff);
+	rtl838x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0x1fffffff);
 }
 
 static inline int rtl838x_vlan_port_egr_filter(int port)
diff --git a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c
index 74472461a15b..c7e827b67494 100644
--- a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c
+++ b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl839x.c
@@ -411,7 +411,7 @@  static void rtl839x_vlan_profile_setup(int profile)
 	sw_w32(p[0], RTL839X_VLAN_PROFILE(profile));
 	sw_w32(p[1], RTL839X_VLAN_PROFILE(profile) + 4);
 
-	rtl839x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0x000fffffffffffff);
+	rtl839x_write_mcast_pmask(UNKNOWN_MC_PMASK, 0x001fffffffffffff);
 }
 
 static inline int rtl839x_vlan_port_egr_filter(int port)
diff --git a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c
index 820c78165a3c..4f590621bea6 100644
--- a/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c
+++ b/target/linux/realtek/files-5.4/drivers/net/dsa/rtl83xx/rtl930x.c
@@ -153,9 +153,9 @@  static void rtl930x_vlan_profile_setup(int profile)
 
 	// Enable routing of Ipv4/6 Unicast and IPv4/6 Multicast traffic
 	p[0] |= BIT(17) | BIT(16) | BIT(13) | BIT(12);
-	p[2] = 0x0fffffff; // L2 unknwon MC flooding portmask: all but the CPU-port
-	p[3] = 0x0fffffff; // IPv4 unknwon MC flooding portmask
-	p[4] = 0x0fffffff; // IPv6 unknwon MC flooding portmask
+	p[2] = 0x1fffffff; // L2 unknwon MC flooding portmask all ports, including the CPU-port
+	p[3] = 0x1fffffff; // IPv4 unknwon MC flooding portmask
+	p[4] = 0x1fffffff; // IPv6 unknwon MC flooding portmask
 
 	sw_w32(p[0], RTL930X_VLAN_PROFILE_SET(profile));
 	sw_w32(p[1], RTL930X_VLAN_PROFILE_SET(profile) + 4);