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

Reply via email to