net/mlx5: fix E-Switch DV flow disabling
authorMichael Baum <michaelba@nvidia.com>
Wed, 2 Mar 2022 19:14:31 +0000 (21:14 +0200)
committerRaslan Darawsheh <rasland@nvidia.com>
Mon, 7 Mar 2022 10:49:29 +0000 (11:49 +0100)
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

index 09cd136..72b1e35 100644 (file)
@@ -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 &&