mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
mlxsw: spectrum_switchdev: Consider mrouter status for mdb changes
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>
This commit is contained in:
parent
0166277706
commit
ded711c87a
1 changed files with 9 additions and 4 deletions
|
@ -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");
|
||||
|
@ -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);
|
||||
|
|
Loading…
Reference in a new issue