linux/drivers/net/dsa/mv88e6xxx
Rasmus Villemoes 87fe04367d net: dsa: mv88e6xxx: also read STU state in mv88e6250_g1_vtu_getnext
mv88e6xxx_port_vlan_join checks whether the VTU already contains an
entry for the given vid (via mv88e6xxx_vtu_getnext), and if so, merely
changes the relevant .member[] element and loads the updated entry
into the VTU.

However, at least for the mv88e6250, the on-stack struct
mv88e6xxx_vtu_entry vlan never has its .state[] array explicitly
initialized, neither in mv88e6xxx_port_vlan_join() nor inside the
getnext implementation. So the new entry has random garbage for the
STU bits, breaking VLAN filtering.

When the VTU entry is initially created, those bits are all zero, and
we should make sure to keep them that way when the entry is updated.

Fixes: 92307069a9 (net: dsa: mv88e6xxx: Avoid VTU corruption on 6097)
Signed-off-by: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Reviewed-by: Tobias Waldekranz <tobias@waldekranz.com>
Tested-by: Tobias Waldekranz <tobias@waldekranz.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2021-01-18 13:04:28 -08:00
..
chip.c net: dsa: mv88e6xxx: don't set non-existing learn2all bit for 6220/6250 2020-12-14 17:25:03 -08:00
chip.h net: dsa: mv88e6xxx: Don't force link when using in-band-status 2020-11-25 17:58:06 -08:00
devlink.c Merge https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-11-12 16:54:48 -08:00
devlink.h net: dsa: mv88e6xxx: Implement devlink info get callback 2020-09-18 18:18:30 -07:00
global1.c net: dsa: mv88e6xxx: Wait for EEPROM done after HW reset 2020-11-18 11:24:44 -08:00
global1.h Merge https://git.kernel.org/pub/scm/linux/kernel/git/netdev/net 2020-11-19 19:08:46 -08:00
global1_atu.c net: mv88e6xxx: convert comma to semicolon 2020-12-09 16:23:08 -08:00
global1_vtu.c net: dsa: mv88e6xxx: also read STU state in mv88e6250_g1_vtu_getnext 2021-01-18 13:04:28 -08:00
global2.c net: dsa: mv88e6xxx: Remove set but unused variable 2020-07-05 15:43:01 -07:00
global2.h
global2_avb.c
global2_scratch.c net: dsa: mv88e6xxx: scratch: Fixup kerneldoc 2020-07-05 15:43:01 -07:00
hwtstamp.c net: dsa: mv88e6xxx: Use generic helper function 2020-08-19 16:07:49 -07:00
hwtstamp.h
Kconfig net: Make PTP-specific drivers depend on PTP_1588_CLOCK 2020-05-01 15:27:51 -07:00
Makefile net: dsa: mv88e6xxx: Move devlink code into its own file 2020-09-18 18:17:45 -07:00
phy.c
phy.h
port.c net: dsa: mv88e6xxx: Don't force link when using in-band-status 2020-11-25 17:58:06 -08:00
port.h net: dsa: mv88e6xxx: Don't force link when using in-band-status 2020-11-25 17:58:06 -08:00
port_hidden.c
ptp.c
ptp.h
serdes.c net: dsa: mv88e6xxx: Handle error in serdes_get_regs 2020-11-25 17:58:06 -08:00
serdes.h net: dsa: mv88e6xxx: Add serdes interrupt support for MV88E6097 2020-11-25 17:58:06 -08:00
smi.c
smi.h