lkml.org 
[lkml]   [2019]   [Jan]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 4.20 169/304] mlxsw: spectrum_acl: Limit priority value
    Date
    From: Nir Dotan <nird@mellanox.com>

    [ Upstream commit d7263ab35be25505ab57ebecd93cbc5dba8be717 ]

    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>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
    index e171513bb32a..30931a2c025b 100644
    --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
    +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_tcam.c
    @@ -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. */
    --
    2.19.1
    \
     
     \ /
      Last update: 2019-01-28 18:41    [W:4.409 / U:0.156 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site