• Ben Hutchings's avatar
    net: dsa: microchip: ksz8795: Fix VLAN filtering · 16484413
    Ben Hutchings authored
    Currently ksz8_port_vlan_filtering() sets or clears the VLAN Enable
    hardware flag.  That controls discarding of packets with a VID that
    has not been enabled for any port on the switch.
    
    Since it is a global flag, set the dsa_switch::vlan_filtering_is_global
    flag so that the DSA core understands this can't be controlled per
    port.
    
    When VLAN filtering is enabled, the switch should also discard packets
    with a VID that's not enabled on the ingress port.  Set or clear each
    external port's VLAN Ingress Filter flag in ksz8_port_vlan_filtering()
    to make that happen.
    
    Fixes: e66f840c ("net: dsa: ksz: Add Microchip KSZ8795 DSA driver")
    Signed-off-by: default avatarBen Hutchings <ben.hutchings@mind.be>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    16484413
ksz8795.c 45.4 KB