Skip to content

Commit

Permalink
mlxsw: spectrum_switchdev: Consider mrouter status for mdb changes
Browse files Browse the repository at this point in the history
When a mrouter is registered or leaves a mid, don't update the HW.

Signed-off-by: Nogah Frankel <nogahf@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Nogah Frankel authored and David S. Miller committed Sep 21, 2017
1 parent 0166277 commit ded711c
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
Original file line number Diff line number Diff line change
Expand Up @@ -1491,6 +1491,9 @@ static int mlxsw_sp_port_mdb_add(struct mlxsw_sp_port *mlxsw_sp_port,
if (!bridge_device->multicast_enabled)
return 0;

if (bridge_port->mrouter)
return 0;

err = mlxsw_sp_port_smid_set(mlxsw_sp_port, mid->mid, true);
if (err) {
netdev_err(dev, "Unable to set SMID\n");
Expand Down Expand Up @@ -1613,10 +1616,12 @@ __mlxsw_sp_port_mdb_del(struct mlxsw_sp_port *mlxsw_sp_port,
int err;

if (bridge_port->bridge_device->multicast_enabled) {
err = mlxsw_sp_port_smid_set(mlxsw_sp_port, mid->mid, false);

if (err)
netdev_err(dev, "Unable to remove port from SMID\n");
if (bridge_port->bridge_device->multicast_enabled) {
err = mlxsw_sp_port_smid_set(mlxsw_sp_port, mid->mid,
false);
if (err)
netdev_err(dev, "Unable to remove port from SMID\n");
}
}

err = mlxsw_sp_port_remove_from_mid(mlxsw_sp_port, mid);
Expand Down

0 comments on commit ded711c

Please sign in to comment.