On Sat, Jan 16, 2021 at 03:39, Rasmus Villemoes <rasmus.villem...@prevas.dk> wrote: > 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: 92307069a96c (net: dsa: mv88e6xxx: Avoid VTU corruption on 6097) > Signed-off-by: Rasmus Villemoes <rasmus.villem...@prevas.dk>
Reviewed-by: Tobias Waldekranz <tob...@waldekranz.com> Tested-by: Tobias Waldekranz <tob...@waldekranz.com>