forked from Minki/linux
mlxsw: spectrum_router: Consolidate MAC profiles when possible
Currently, when setting a router interface (RIF) MAC address while the
MAC profile is not shared with other RIFs, the profile is edited so that
the new MAC address is assigned to it.
This does not take into account a situation in which the new MAC address
already matches an existing MAC profile. In that situation, two MAC
profiles will be occupied even though they hold MAC addresses from the
same profile.
In order to prevent that, add a check to ensure that editing a MAC
profile takes place only when the new MAC address does not match an
existing profile.
Fixes: 605d25cd78
("mlxsw: spectrum_router: Add RIF MAC profiles support")
Reported-by: Maksym Yaremchuk <maksymy@nvidia.com>
Tested-by: Maksym Yaremchuk <maksymy@nvidia.com>
Signed-off-by: Danielle Ratson <danieller@nvidia.com>
Signed-off-by: Ido Schimmel <idosch@nvidia.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
5f9562ebe7
commit
b442f2ea84
@ -8494,7 +8494,8 @@ mlxsw_sp_rif_mac_profile_replace(struct mlxsw_sp *mlxsw_sp,
|
||||
u8 mac_profile;
|
||||
int err;
|
||||
|
||||
if (!mlxsw_sp_rif_mac_profile_is_shared(rif))
|
||||
if (!mlxsw_sp_rif_mac_profile_is_shared(rif) &&
|
||||
!mlxsw_sp_rif_mac_profile_find(mlxsw_sp, new_mac))
|
||||
return mlxsw_sp_rif_mac_profile_edit(rif, new_mac);
|
||||
|
||||
err = mlxsw_sp_rif_mac_profile_get(mlxsw_sp, new_mac,
|
||||
|
Loading…
Reference in New Issue
Block a user