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 <michae...@nvidia.com> Acked-by: Matan Azrad <ma...@nvidia.com> --- drivers/net/mlx5/mlx5.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c index 09cd1367db..72b1e35673 100644 --- a/drivers/net/mlx5/mlx5.c +++ b/drivers/net/mlx5/mlx5.c @@ -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 && -- 2.25.1