]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
net: dsa: mt7530: fix handling of 802.1X PAE frames
authorArınç ÜNAL <arinc.unal@arinc9.com>
Sun, 13 Aug 2023 10:59:17 +0000 (13:59 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Aug 2023 12:52:30 +0000 (14:52 +0200)
[ Upstream commit e94b590abfff2cdbf0bdaa7d9904364c8d480af5 ]

802.1X PAE frames are link-local frames, therefore they must be trapped to
the CPU port. Currently, the MT753X switches treat 802.1X PAE frames as
regular multicast frames, therefore flooding them to user ports. To fix
this, set 802.1X PAE frames to be trapped to the CPU port(s).

Fixes: b8f126a8d543 ("net-next: dsa: add dsa support for Mediatek MT7530 switch")
Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/dsa/mt7530.c
drivers/net/dsa/mt7530.h

index 7e773c4ba04638dd5f27b627a522c12391f856f9..32dc4f19c82c69e1651718fcea398eb90f815dc0 100644 (file)
@@ -1006,6 +1006,10 @@ mt753x_trap_frames(struct mt7530_priv *priv)
        mt7530_rmw(priv, MT753X_BPC, MT753X_BPDU_PORT_FW_MASK,
                   MT753X_BPDU_CPU_ONLY);
 
+       /* Trap 802.1X PAE frames to the CPU port(s) */
+       mt7530_rmw(priv, MT753X_BPC, MT753X_PAE_PORT_FW_MASK,
+                  MT753X_PAE_PORT_FW(MT753X_BPDU_CPU_ONLY));
+
        /* Trap LLDP frames with :0E MAC DA to the CPU port(s) */
        mt7530_rmw(priv, MT753X_RGAC2, MT753X_R0E_PORT_FW_MASK,
                   MT753X_R0E_PORT_FW(MT753X_BPDU_CPU_ONLY));
index 08045b035e6ab02cd0396cca9e6d7aaa9d294fb4..17e42d30fff4bdf2191e0fbc03d54ee9d61f6d53 100644 (file)
@@ -66,6 +66,8 @@ enum mt753x_id {
 /* Registers for BPDU and PAE frame control*/
 #define MT753X_BPC                     0x24
 #define  MT753X_BPDU_PORT_FW_MASK      GENMASK(2, 0)
+#define  MT753X_PAE_PORT_FW_MASK       GENMASK(18, 16)
+#define  MT753X_PAE_PORT_FW(x)         FIELD_PREP(MT753X_PAE_PORT_FW_MASK, x)
 
 /* Register for :03 and :0E MAC DA frame control */
 #define MT753X_RGAC2                   0x2c