• Vivien Didelot's avatar
    net: dsa: mv88e6xxx: do not leave reserved VLANs · 66d9cd0f
    Vivien Didelot authored
    BRIDGE_VLAN_FILTERING automatically adds a newly bridged port to the
    VLAN with the bridge's default_pvid.
    
    The mv88e6xxx driver currently reserves VLANs 4000+ for unbridged ports
    isolation. When a port joins a bridge, it leaves its reserved VLAN. When
    a port leaves a bridge, it joins again its reserved VLAN.
    
    But if the VLAN filtering is disabled, or if this hardware VLAN is
    already in use, the bridged port ends up with no default VLAN, and the
    communication with the CPU is thus broken.
    
    To fix this, make a port join its reserved VLAN once on setup, never
    leave it, and restore its PVID after another one was eventually used.
    Signed-off-by: default avatarVivien Didelot <vivien.didelot@savoirfairelinux.com>
    Tested-by: default avatarAndrew Lunn <andrew@lunn.ch>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    66d9cd0f
mv88e6xxx.c 64.2 KB