common/mlx5: fix code arrangement in tag allocation

Message ID 1593004831-4073-1-git-send-email-michaelba@mellanox.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series common/mlx5: fix code arrangement in tag allocation |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/travis-robot success Travis build: passed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-nxp-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-testing success Testing PASS

Commit Message

Michael Baum June 24, 2020, 1:20 p.m. UTC
  Flow tag action is supported only when the driver has DR or DV support.
The tag allocation is adjusted to the modes DV or DR.

In case both DR and DV are not supported in the system, the driver
handles static code for error report.
This error code, wrongly, was compiled when DV is supported while in
this case it cannot be accessed at all.

Ignore the aforementioned static error code in case of DV by
preprocessor commands rearrangement.

Fixes: cbb66daa3c85 ("net/mlx5: prepare Direct Verbs for Direct Rule")
Cc: stable@dpdk.org

Signed-off-by: Michael Baum <michaelba@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
---
 drivers/common/mlx5/linux/mlx5_glue.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
  

Comments

Raslan Darawsheh June 28, 2020, 12:17 p.m. UTC | #1
Hi,

> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of Michael Baum
> Sent: Wednesday, June 24, 2020 4:21 PM
> To: dev@dpdk.org
> Cc: Matan Azrad <matan@mellanox.com>; Slava Ovsiienko
> <viacheslavo@mellanox.com>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] common/mlx5: fix code arrangement in tag
> allocation
> 
> Flow tag action is supported only when the driver has DR or DV support.
> The tag allocation is adjusted to the modes DV or DR.
> 
> In case both DR and DV are not supported in the system, the driver
> handles static code for error report.
> This error code, wrongly, was compiled when DV is supported while in
> this case it cannot be accessed at all.
> 
> Ignore the aforementioned static error code in case of DV by
> preprocessor commands rearrangement.
> 
> Fixes: cbb66daa3c85 ("net/mlx5: prepare Direct Verbs for Direct Rule")
> Cc: stable@dpdk.org
> 
> Signed-off-by: Michael Baum <michaelba@mellanox.com>
> Acked-by: Matan Azrad <matan@mellanox.com>
> ---
>  drivers/common/mlx5/linux/mlx5_glue.c | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/common/mlx5/linux/mlx5_glue.c
> b/drivers/common/mlx5/linux/mlx5_glue.c
> index c91ee33..a41650d 100644
> --- a/drivers/common/mlx5/linux/mlx5_glue.c
> +++ b/drivers/common/mlx5/linux/mlx5_glue.c
> @@ -752,7 +752,7 @@
>  #ifdef HAVE_IBV_FLOW_DV_SUPPORT
>  #ifdef HAVE_MLX5DV_DR
>  	return mlx5dv_dr_action_create_tag(tag);
> -#else
> +#else /* HAVE_MLX5DV_DR */
>  	struct mlx5dv_flow_action_attr *action;
>  	action = malloc(sizeof(*action));
>  	if (!action)
> @@ -760,11 +760,12 @@
>  	action->type = MLX5DV_FLOW_ACTION_TAG;
>  	action->tag_value = tag;
>  	return action;
> -#endif
> -#endif
> +#endif /* HAVE_MLX5DV_DR */
> +#else /* HAVE_IBV_FLOW_DV_SUPPORT */
>  	(void)tag;
>  	errno = ENOTSUP;
>  	return NULL;
> +#endif /* HAVE_IBV_FLOW_DV_SUPPORT */
>  }
> 
>  static void *
> --
> 1.8.3.1


Patch apply to next-net-mlx,

Kindest regards,
Raslan Darawsheh
  

Patch

diff --git a/drivers/common/mlx5/linux/mlx5_glue.c b/drivers/common/mlx5/linux/mlx5_glue.c
index c91ee33..a41650d 100644
--- a/drivers/common/mlx5/linux/mlx5_glue.c
+++ b/drivers/common/mlx5/linux/mlx5_glue.c
@@ -752,7 +752,7 @@ 
 #ifdef HAVE_IBV_FLOW_DV_SUPPORT
 #ifdef HAVE_MLX5DV_DR
 	return mlx5dv_dr_action_create_tag(tag);
-#else
+#else /* HAVE_MLX5DV_DR */
 	struct mlx5dv_flow_action_attr *action;
 	action = malloc(sizeof(*action));
 	if (!action)
@@ -760,11 +760,12 @@ 
 	action->type = MLX5DV_FLOW_ACTION_TAG;
 	action->tag_value = tag;
 	return action;
-#endif
-#endif
+#endif /* HAVE_MLX5DV_DR */
+#else /* HAVE_IBV_FLOW_DV_SUPPORT */
 	(void)tag;
 	errno = ENOTSUP;
 	return NULL;
+#endif /* HAVE_IBV_FLOW_DV_SUPPORT */
 }
 
 static void *