From: Tal Shnaiderman Date: Mon, 28 Dec 2020 12:33:02 +0000 (+0200) Subject: net/mlx5: fix comparison sign in flow engine X-Git-Url: http://git.droids-corp.org/?p=dpdk.git;a=commitdiff_plain;h=16047bd015e292df2a6c61b8f4584f7c166d2f51 net/mlx5: fix comparison sign in flow engine The clang compiler warns on size mismatches of several comparisons. warning: comparison of integers of different signs To resolve those the right types is used/cast to. Fixes: 3e8edd0ef848 ("net/mlx5: update metadata register ID query") Fixes: e554b672aa05 ("net/mlx5: support flow tag") Fixes: c8f0abe7f89d ("net/mlx5: fix meter color register consideration") Cc: stable@dpdk.org Signed-off-by: Tal Shnaiderman Acked-by: Matan Azrad --- diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index b1c061a3f0..f110c6b714 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -798,7 +798,7 @@ mlx5_flow_get_reg_id(struct rte_eth_dev *dev, start_reg = priv->mtr_color_reg != REG_C_2 ? REG_C_2 : (priv->mtr_reg_share ? REG_C_3 : REG_C_4); skip_mtr_reg = !!(priv->mtr_en && start_reg == REG_C_2); - if (id > (REG_C_7 - start_reg)) + if (id > (uint32_t)(REG_C_7 - start_reg)) return rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ITEM, NULL, "invalid tag id"); @@ -814,7 +814,7 @@ mlx5_flow_get_reg_id(struct rte_eth_dev *dev, */ if (skip_mtr_reg && config->flow_mreg_c [id + start_reg - REG_C_0] >= priv->mtr_color_reg) { - if (id >= (REG_C_7 - start_reg)) + if (id >= (uint32_t)(REG_C_7 - start_reg)) return rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ITEM, NULL, "invalid tag id"); diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index f628268344..ce229dbe85 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -955,7 +955,7 @@ flow_dv_convert_action_set_reg RTE_FLOW_ERROR_TYPE_ACTION, NULL, "too many items to modify"); MLX5_ASSERT(conf->id != REG_NON); - MLX5_ASSERT(conf->id < RTE_DIM(reg_to_field)); + MLX5_ASSERT(conf->id < (enum modify_reg)RTE_DIM(reg_to_field)); actions[i] = (struct mlx5_modification_cmd) { .action_type = MLX5_MODIFICATION_TYPE_SET, .field = reg_to_field[conf->id], diff --git a/drivers/net/mlx5/windows/mlx5_flow_os.c b/drivers/net/mlx5/windows/mlx5_flow_os.c index daf4e15ddb..acd7de61e0 100644 --- a/drivers/net/mlx5/windows/mlx5_flow_os.c +++ b/drivers/net/mlx5/windows/mlx5_flow_os.c @@ -188,7 +188,7 @@ mlx5_flow_os_create_flow(void *matcher, void *match_value, void *actions[], void **flow) { struct mlx5_action *action; - int i; + size_t i; struct mlx5_matcher *mlx5_matcher = matcher; struct mlx5_flow_dv_match_params *mlx5_match_value = match_value; uint32_t in[MLX5_ST_SZ_DW(devx_fs_rule_add_in)] = {0};