• Vladimir Oltean's avatar
    net: dsa: still fast-age ports joining a bridge if they can't configure learning · a4ffe09f
    Vladimir Oltean authored
    Commit 39f32101 ("net: dsa: don't fast age standalone ports")
    assumed that all standalone ports disable address learning, but if the
    switch driver implements .port_fast_age but not .port_bridge_flags (like
    ksz9477, ksz8795, lantiq_gswip, lan9303), then that might not actually
    be true.
    
    So whereas before, the bridge temporarily walking us through the
    BLOCKING STP state meant that the standalone ports had a checkpoint to
    flush their baggage and start fresh when they join a bridge, after that
    commit they no longer do.
    
    Restore the old behavior for these drivers by checking if the switch can
    toggle address learning. If it can't, disregard the "do_fast_age"
    argument and unconditionally perform fast ageing on STP state changes.
    Signed-off-by: default avatarVladimir Oltean <vladimir.oltean@nxp.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    a4ffe09f
port.c 31.8 KB