[dpdk-dev] [PATCH] net/mlx5: fix clang 3.4.2 compilation

Raslan Darawsheh rasland at mellanox.com
Sun Jan 26 17:03:58 CET 2020


Hi,

> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Matan Azrad
> Sent: Wednesday, January 22, 2020 4:36 PM
> To: Slava Ovsiienko <viacheslavo at mellanox.com>
> Cc: dev at dpdk.org; stable at dpdk.org
> Subject: [dpdk-dev] [PATCH] net/mlx5: fix clang 3.4.2 compilation
> 
> Compilation massage example:
> "dpdk/drivers/net/mlx5/mlx5_flow_dv.c:1087:10: error: comparison of
> unsigned enum expression < 0 is always false
> [-Werror,-Wtautological-compare]
>         if (reg < 0)
>             ~~~ ^ ~
> "
> 
> enum modify_reg holds only non-negative integers and in some places in
> the code it was used to be compared with negative value, hence
> compilation was failed.
> 
> Change all thus places to use integer instead of enum modify_reg.
> 
> Fixes: 3e8edd0ef848 ("net/mlx5: update metadata register ID query")
> Fixes: 55deee1715f0 ("net/mlx5: extend flow mark support")
> Cc: stable at dpdk.org
> 
> Signed-off-by: Matan Azrad <matan at mellanox.com>
> ---
>  drivers/net/mlx5/mlx5_flow.c    |  2 +-
>  drivers/net/mlx5/mlx5_flow.h    |  2 +-
>  drivers/net/mlx5/mlx5_flow_dv.c | 12 ++++++------
>  3 files changed, 8 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c
> index 970123b..441ca10 100644
> --- a/drivers/net/mlx5/mlx5_flow.c
> +++ b/drivers/net/mlx5/mlx5_flow.c
> @@ -341,7 +341,7 @@ struct mlx5_flow_tunnel_info {
>   *   The request register on success, a negative errno
>   *   value otherwise and rte_errno is set.
>   */
> -enum modify_reg
> +int
>  mlx5_flow_get_reg_id(struct rte_eth_dev *dev,
>  		     enum mlx5_feature_name feature,
>  		     uint32_t id,
> diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h
> index 9832542..886d770 100644
> --- a/drivers/net/mlx5/mlx5_flow.h
> +++ b/drivers/net/mlx5/mlx5_flow.h
> @@ -762,7 +762,7 @@ uint64_t mlx5_flow_hashfields_adjust(struct
> mlx5_flow *dev_flow, int tunnel,
>  				     uint64_t hash_fields);
>  uint32_t mlx5_flow_adjust_priority(struct rte_eth_dev *dev, int32_t
> priority,
>  				   uint32_t subpriority);
> -enum modify_reg mlx5_flow_get_reg_id(struct rte_eth_dev *dev,
> +int mlx5_flow_get_reg_id(struct rte_eth_dev *dev,
>  				     enum mlx5_feature_name feature,
>  				     uint32_t id,
>  				     struct rte_flow_error *error);
> diff --git a/drivers/net/mlx5/mlx5_flow_dv.c
> b/drivers/net/mlx5/mlx5_flow_dv.c
> index 5a1b426..0464fa8 100644
> --- a/drivers/net/mlx5/mlx5_flow_dv.c
> +++ b/drivers/net/mlx5/mlx5_flow_dv.c
> @@ -1077,7 +1077,7 @@ struct field_modify_info modify_tcp[] = {
>  		{4, 0, 0}, /* dynamic instead of
> MLX5_MODI_META_REG_C_1. */
>  		{0, 0, 0},
>  	};
> -	enum modify_reg reg;
> +	int reg;
> 
>  	if (!mask)
>  		return rte_flow_error_set(error, EINVAL,
> @@ -1119,7 +1119,7 @@ struct field_modify_info modify_tcp[] = {
>  			 const struct rte_flow_attr *attr,
>  			 struct rte_flow_error *error)
>  {
> -	enum modify_reg reg =
> +	int reg =
>  		mlx5_flow_get_reg_id(dev, attr->transfer ?
>  					  MLX5_METADATA_FDB :
>  					    attr->egress ?
> @@ -1167,7 +1167,7 @@ struct field_modify_info modify_tcp[] = {
>  	struct field_modify_info reg_c_x[] = {
>  		[1] = {0, 0, 0},
>  	};
> -	enum modify_reg reg = flow_dv_get_metadata_reg(dev, attr,
> error);
> +	int reg = flow_dv_get_metadata_reg(dev, attr, error);
> 
>  	if (reg < 0)
>  		return reg;
> @@ -1370,7 +1370,7 @@ struct field_modify_info modify_tcp[] = {
>  	struct rte_flow_item_meta nic_mask = {
>  		.data = UINT32_MAX
>  	};
> -	enum modify_reg reg;
> +	int reg;
>  	int ret;
> 
>  	if (!spec)
> @@ -2036,7 +2036,7 @@ struct field_modify_info modify_tcp[] = {
>  {
>  	const struct rte_flow_action_set_meta *conf;
>  	uint32_t nic_mask = UINT32_MAX;
> -	enum modify_reg reg;
> +	int reg;
> 
>  	if (!mlx5_flow_ext_mreg_supported(dev))
>  		return rte_flow_error_set(error, ENOTSUP,
> @@ -6124,7 +6124,7 @@ struct field_modify_info modify_tcp[] = {
>  		meta_m = &rte_flow_item_meta_mask;
>  	meta_v = (const void *)item->spec;
>  	if (meta_v) {
> -		enum modify_reg reg;
> +		int reg;
>  		uint32_t value = meta_v->data;
>  		uint32_t mask = meta_m->data;
> 
> --
> 1.8.3.1


Patches applied to next-net-mlx,

Kindest regards,
Raslan Darawsheh


More information about the dev mailing list