• Ioana Ciornei's avatar
    dpaa2-switch: do not ask for MDB, VLAN and FDB replay · f24a49a3
    Ioana Ciornei authored
    Starting with commit 4e51bf44 ("net: bridge: move the switchdev
    object replay helpers to "push" mode") the switchdev_bridge_port_offload()
    helper was extended with the intention to provide switchdev drivers easy
    access to object addition and deletion replays. This works by calling
    the replay helpers with non-NULL notifier blocks.
    
    In the same commit, the dpaa2-switch driver was updated so that it
    passes valid notifier blocks to the helper. At that moment, no
    regression was identified through testing.
    
    In the meantime, the blamed commit changed the behavior in terms of
    which ports get hit by the replay. Before this commit, only the initial
    port which identified itself as offloaded through
    switchdev_bridge_port_offload() got a replay of all port objects and
    FDBs. After this, the newly joining port will trigger a replay of
    objects on all bridge ports and on the bridge itself.
    
    This behavior leads to errors in dpaa2_switch_port_vlans_add() when a
    VLAN gets installed on the same interface multiple times.
    
    The intended mechanism to address this is to pass a non-NULL ctx to the
    switchdev_bridge_port_offload() helper and then check it against the
    port's private structure. But since the driver does not have any use for
    the replayed port objects and FDBs until it gains support for LAG
    offload, it's better to fix the issue by reverting the dpaa2-switch
    driver to not ask for replay. The pointers will be added back when we
    are prepared to ignore replays on unrelated ports.
    
    Fixes: b28d580e ("net: bridge: switchdev: replay all VLAN groups")
    Signed-off-by: default avatarIoana Ciornei <ioana.ciornei@nxp.com>
    Link: https://lore.kernel.org/r/20231212164326.2753457-3-ioana.ciornei@nxp.comSigned-off-by: default avatarJakub Kicinski <kuba@kernel.org>
    f24a49a3
dpaa2-switch.c 88.3 KB