Prepare the mlxsw driver, which supports LAG offload, to deal with bridge switchdev objects being replayed on the LAG bridge port multiple times, once for each time a physical port beneath the LAG calls switchdev_bridge_port_offload(). Signed-off-by: Vladimir Oltean <vladimir.oltean@xxxxxxx> --- drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c index cbcf38338f3e..9f72912e4982 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c @@ -1774,6 +1774,9 @@ static int mlxsw_sp_port_obj_add(struct net_device *dev, const void *ctx, const struct switchdev_obj_port_vlan *vlan; int err = 0; + if (ctx && ctx != mlxsw_sp_port) + return 0; + switch (obj->id) { case SWITCHDEV_OBJ_ID_PORT_VLAN: vlan = SWITCHDEV_OBJ_PORT_VLAN(obj); @@ -1922,6 +1925,9 @@ static int mlxsw_sp_port_obj_del(struct net_device *dev, const void *ctx, struct mlxsw_sp_port *mlxsw_sp_port = netdev_priv(dev); int err = 0; + if (ctx && ctx != mlxsw_sp_port) + return 0; + switch (obj->id) { case SWITCHDEV_OBJ_ID_PORT_VLAN: err = mlxsw_sp_port_vlans_del(mlxsw_sp_port, -- 2.25.1