mirror of
https://github.com/torvalds/linux.git
synced 2024-12-03 09:31:26 +00:00
mlxsw: spectrum_acl: Limit priority value
In Spectrum-2, higher priority value wins and priority valid values are in the range of {1,cap_kvd_size-1}. mlxsw_sp_acl_tcam_priority_get converts from lower-bound priorities alike tc flower to Spectrum-2 HW range. Up until now tc flower did not provide priority 0 or reached the maximal value, however multicast routing does provide priority 0. Therefore, Change mlxsw_sp_acl_tcam_priority_get to verify priority is in the correct range. Make sure priority is never set to zero and never exceeds the maximal allowed value. Signed-off-by: Nir Dotan <nird@mellanox.com> Reviewed-by: Jiri Pirko <jiri@mellanox.com> Signed-off-by: Ido Schimmel <idosch@mellanox.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
c20580c21f
commit
d7263ab35b
@ -95,8 +95,9 @@ int mlxsw_sp_acl_tcam_priority_get(struct mlxsw_sp *mlxsw_sp,
|
||||
if (!MLXSW_CORE_RES_VALID(mlxsw_sp->core, KVD_SIZE))
|
||||
return -EIO;
|
||||
|
||||
max_priority = MLXSW_CORE_RES_GET(mlxsw_sp->core, KVD_SIZE);
|
||||
if (rulei->priority > max_priority)
|
||||
/* Priority range is 1..cap_kvd_size-1. */
|
||||
max_priority = MLXSW_CORE_RES_GET(mlxsw_sp->core, KVD_SIZE) - 1;
|
||||
if (rulei->priority >= max_priority)
|
||||
return -EINVAL;
|
||||
|
||||
/* Unlike in TC, in HW, higher number means higher priority. */
|
||||
|
Loading…
Reference in New Issue
Block a user