Skip to content

Commit ded711c

Browse files
Nogah Frankeldavem330
authored andcommitted
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 <[email protected]> Signed-off-by: Jiri Pirko <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 0166277 commit ded711c

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1491,6 +1491,9 @@ static int mlxsw_sp_port_mdb_add(struct mlxsw_sp_port *mlxsw_sp_port,
14911491
if (!bridge_device->multicast_enabled)
14921492
return 0;
14931493

1494+
if (bridge_port->mrouter)
1495+
return 0;
1496+
14941497
err = mlxsw_sp_port_smid_set(mlxsw_sp_port, mid->mid, true);
14951498
if (err) {
14961499
netdev_err(dev, "Unable to set SMID\n");
@@ -1613,10 +1616,12 @@ __mlxsw_sp_port_mdb_del(struct mlxsw_sp_port *mlxsw_sp_port,
16131616
int err;
16141617

16151618
if (bridge_port->bridge_device->multicast_enabled) {
1616-
err = mlxsw_sp_port_smid_set(mlxsw_sp_port, mid->mid, false);
1617-
1618-
if (err)
1619-
netdev_err(dev, "Unable to remove port from SMID\n");
1619+
if (bridge_port->bridge_device->multicast_enabled) {
1620+
err = mlxsw_sp_port_smid_set(mlxsw_sp_port, mid->mid,
1621+
false);
1622+
if (err)
1623+
netdev_err(dev, "Unable to remove port from SMID\n");
1624+
}
16201625
}
16211626

16221627
err = mlxsw_sp_port_remove_from_mid(mlxsw_sp_port, mid);

0 commit comments

Comments
 (0)