net/mlx5: fix clang 3.4.2 compilation
Checks
Commit Message
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@dpdk.org
Signed-off-by: Matan Azrad <matan@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(-)
Comments
Hi,
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Matan Azrad
> Sent: Wednesday, January 22, 2020 4:36 PM
> To: Slava Ovsiienko <viacheslavo@mellanox.com>
> Cc: dev@dpdk.org; stable@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@dpdk.org
>
> Signed-off-by: Matan Azrad <matan@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
@@ -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,
@@ -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);
@@ -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;