net/mlx5: fix E-Switch disabling when DV flow disable

Message ID 20220302191431.88476-1-michaelba@nvidia.com (mailing list archive)
State Accepted, archived
Delegated to: Raslan Darawsheh
Headers
Series net/mlx5: fix E-Switch disabling when DV flow disable |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/iol-broadcom-Functional success Functional Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-aarch64-unit-testing success Testing PASS
ci/iol-x86_64-unit-testing success Testing PASS
ci/iol-x86_64-compile-testing success Testing PASS
ci/iol-aarch64-compile-testing success Testing PASS
ci/iol-abi-testing success Testing PASS

Commit Message

Michael Baum March 2, 2022, 7:14 p.m. UTC
  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

Raslan Darawsheh March 7, 2022, 8:55 p.m. UTC | #1
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
  

Patch

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 &&