• Florian Fainelli's avatar
    net: dsa: Add ndo_vlan_rx_{add, kill}_vid implementation · 061f6a50
    Florian Fainelli authored
    In order to properly support VLAN filtering being enabled/disabled on a
    bridge, while having other ports being non bridge port members, we need
    to support the ndo_vlan_rx_{add,kill}_vid callbacks in order to make
    sure the non-bridge ports can continue receiving VLAN tags, even when
    the switch is globally configured to do ingress/egress VID checking.
    
    Since we can call dsa_port_vlan_{add,del} with a bridge_dev pointer
    NULL, we now need to check that in these two functions.
    
    We specifically deal with two possibly problematic cases:
    
    - creating a bridge VLAN entry while there is an existing VLAN device
      claiming that same VID
    
    - creating a VLAN device while there is an existing bridge VLAN entry
      with that VID
    
    Those are both resolved with returning -EBUSY back to user-space.
    Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    061f6a50
slave.c 42.2 KB