OSDN Git Service

mlxsw: spectrum: acl: Remove mlxsw_afk_encode() block range args and key/mask check
authorJiri Pirko <jiri@mellanox.com>
Wed, 14 Nov 2018 08:22:33 +0000 (08:22 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 15 Nov 2018 22:43:43 +0000 (14:43 -0800)
Since two remaining users of mlxsw_afk_encode() do not specify
block ranges to work on, remove the args. Also, key/mask is always
non-NULL now, so skip the checks.

Signed-off-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.c
drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_keys.h
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_atcam.c
drivers/net/ethernet/mellanox/mlxsw/spectrum_acl_ctcam.c

index 0900ccf..df78d23 100644 (file)
@@ -426,15 +426,17 @@ mlxsw_sp_afk_encode_one(const struct mlxsw_afk_element_inst *elinst,
 void mlxsw_afk_encode(struct mlxsw_afk *mlxsw_afk,
                      struct mlxsw_afk_key_info *key_info,
                      struct mlxsw_afk_element_values *values,
-                     char *key, char *mask, int block_start, int block_end)
+                     char *key, char *mask)
 {
+       unsigned int blocks_count =
+                       mlxsw_afk_key_info_blocks_count_get(key_info);
        char block_mask[MLXSW_SP_AFK_KEY_BLOCK_MAX_SIZE];
        char block_key[MLXSW_SP_AFK_KEY_BLOCK_MAX_SIZE];
        const struct mlxsw_afk_element_inst *elinst;
        enum mlxsw_afk_element element;
        int block_index, i;
 
-       for (i = block_start; i <= block_end; i++) {
+       for (i = 0; i < blocks_count; i++) {
                memset(block_key, 0, MLXSW_SP_AFK_KEY_BLOCK_MAX_SIZE);
                memset(block_mask, 0, MLXSW_SP_AFK_KEY_BLOCK_MAX_SIZE);
 
@@ -451,10 +453,8 @@ void mlxsw_afk_encode(struct mlxsw_afk *mlxsw_afk,
                                                values->storage.mask);
                }
 
-               if (key)
-                       mlxsw_afk->ops->encode_block(key, i, block_key);
-               if (mask)
-                       mlxsw_afk->ops->encode_block(mask, i, block_mask);
+               mlxsw_afk->ops->encode_block(key, i, block_key);
+               mlxsw_afk->ops->encode_block(mask, i, block_mask);
        }
 }
 EXPORT_SYMBOL(mlxsw_afk_encode);
index a5303c0..bcd2641 100644 (file)
@@ -229,7 +229,7 @@ void mlxsw_afk_values_add_buf(struct mlxsw_afk_element_values *values,
 void mlxsw_afk_encode(struct mlxsw_afk *mlxsw_afk,
                      struct mlxsw_afk_key_info *key_info,
                      struct mlxsw_afk_element_values *values,
-                     char *key, char *mask, int block_start, int block_end);
+                     char *key, char *mask);
 void mlxsw_afk_clear(struct mlxsw_afk *mlxsw_afk, char *key,
                     int block_start, int block_end);
 
index ffdf464..12798ce 100644 (file)
@@ -439,12 +439,10 @@ __mlxsw_sp_acl_atcam_entry_add(struct mlxsw_sp *mlxsw_sp,
        char mask[MLXSW_REG_PTCEX_FLEX_KEY_BLOCKS_LEN] = { 0 };
        struct mlxsw_afk *afk = mlxsw_sp_acl_afk(mlxsw_sp->acl);
        struct mlxsw_sp_acl_erp_mask *erp_mask;
-       unsigned int blocks_count;
        int err;
 
-       blocks_count = mlxsw_afk_key_info_blocks_count_get(region->key_info);
        mlxsw_afk_encode(afk, region->key_info, &rulei->values,
-                        aentry->ht_key.enc_key, mask, 0, blocks_count - 1);
+                        aentry->ht_key.enc_key, mask);
 
        erp_mask = mlxsw_sp_acl_erp_mask_get(aregion, mask, false);
        if (IS_ERR(erp_mask))
index e3c6fe8..f3e834b 100644 (file)
@@ -46,7 +46,6 @@ mlxsw_sp_acl_ctcam_region_entry_insert(struct mlxsw_sp *mlxsw_sp,
        struct mlxsw_sp_acl_tcam_region *region = cregion->region;
        struct mlxsw_afk *afk = mlxsw_sp_acl_afk(mlxsw_sp->acl);
        char ptce2_pl[MLXSW_REG_PTCE2_LEN];
-       unsigned int blocks_count;
        char *act_set;
        u32 priority;
        char *mask;
@@ -63,9 +62,7 @@ mlxsw_sp_acl_ctcam_region_entry_insert(struct mlxsw_sp *mlxsw_sp,
                             centry->parman_item.index, priority);
        key = mlxsw_reg_ptce2_flex_key_blocks_data(ptce2_pl);
        mask = mlxsw_reg_ptce2_mask_data(ptce2_pl);
-       blocks_count = mlxsw_afk_key_info_blocks_count_get(region->key_info);
-       mlxsw_afk_encode(afk, region->key_info, &rulei->values, key, mask, 0,
-                        blocks_count - 1);
+       mlxsw_afk_encode(afk, region->key_info, &rulei->values, key, mask);
 
        err = cregion->ops->entry_insert(cregion, centry, mask);
        if (err)