• Linus Walleij's avatar
    net: dsa: rtl8366: Fix VLAN semantics · f212dc76
    Linus Walleij authored
    [ Upstream commit 15ab7906 ]
    
    The RTL8366 would not handle adding new members (ports) to
    a VLAN: the code assumed that ->port_vlan_add() was only
    called once for a single port. When intializing the
    switch with .configure_vlan_while_not_filtering set to
    true, the function is called numerous times for adding
    all ports to VLAN1, which was something the code could
    not handle.
    
    Alter rtl8366_set_vlan() to just |= new members and
    untagged flags to 4k and MC VLAN table entries alike.
    This makes it possible to just add new ports to a
    VLAN.
    
    Put in some helpful debug code that can be used to find
    any further bugs here.
    
    Cc: DENG Qingfang <dqfext@gmail.com>
    Cc: Mauri Sandberg <sandberg@mailfence.com>
    Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
    Fixes: d8652956 ("net: dsa: realtek-smi: Add Realtek SMI driver")
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
    f212dc76
rtl8366.c 11.6 KB