net/mlx5: fix E-Switch disabling when DV flow disable
Checks
Commit Message
E-Switch DV flow is supported only when DV flow is supported and
enabled.
The mlx5_shared_dev_ctx_args_config() function ensures that when the
environment does not support DV, the "dv_esw_en" flag is turned off.
However, when the environment is supportive but the user has requested
to disable it, the "dv_esw_en" flag remains on and causes the PMD to try
to create an E-Switch through the Verbs engine.
This patch adds check to ensure that "dv_esw_en" flag will be turned off
when DV flow is disabled.
Fixes: a13ec19c1993 ("net/mlx5: add shared device context config structure")
Signed-off-by: Michael Baum <michaelba@nvidia.com>
Acked-by: Matan Azrad <matan@nvidia.com>
---
drivers/net/mlx5/mlx5.c | 5 +++++
1 file changed, 5 insertions(+)
Comments
Hi,
> -----Original Message-----
> From: Michael Baum <michaelba@nvidia.com>
> Sent: Wednesday, March 2, 2022 9:15 PM
> To: dev@dpdk.org
> Cc: Matan Azrad <matan@nvidia.com>; Raslan Darawsheh
> <rasland@nvidia.com>; Slava Ovsiienko <viacheslavo@nvidia.com>
> Subject: [PATCH] net/mlx5: fix E-Switch disabling when DV flow disable
>
> E-Switch DV flow is supported only when DV flow is supported and enabled.
>
> The mlx5_shared_dev_ctx_args_config() function ensures that when the
> environment does not support DV, the "dv_esw_en" flag is turned off.
> However, when the environment is supportive but the user has requested
> to disable it, the "dv_esw_en" flag remains on and causes the PMD to try to
> create an E-Switch through the Verbs engine.
>
> This patch adds check to ensure that "dv_esw_en" flag will be turned off
> when DV flow is disabled.
>
> Fixes: a13ec19c1993 ("net/mlx5: add shared device context config structure")
>
> Signed-off-by: Michael Baum <michaelba@nvidia.com>
> Acked-by: Matan Azrad <matan@nvidia.com>
Patch applied to next-net-mlx,
Kindest regards,
Raslan Darawsheh
@@ -1298,6 +1298,11 @@ mlx5_shared_dev_ctx_args_config(struct mlx5_dev_ctx_shared *sh,
DRV_LOG(DEBUG, "E-Switch DV flow is not supported.");
config->dv_esw_en = 0;
}
+ if (config->dv_esw_en && !config->dv_flow_en) {
+ DRV_LOG(DEBUG,
+ "E-Switch DV flow is supported only when DV flow is enabled.");
+ config->dv_esw_en = 0;
+ }
if (config->dv_miss_info && config->dv_esw_en)
config->dv_xmeta_en = MLX5_XMETA_MODE_META16;
if (!config->dv_esw_en &&