In "dv_xmeta_en" devarg there is an option of dv_xmeta_en=3 which engages tunnel offload mode. In E-Switch configuration, that mode implicitly activates dv_xmeta_en=1.
The update according to E-switch support is done immediately after the first parsing of the devargs, but there is another adjustment later. This patch moves the adjustment after the second parsing. Fixes: 4ec6360de37d ("net/mlx5: implement tunnel offload") Cc: sta...@dpdk.org Signed-off-by: Michael Baum <michae...@nvidia.com> Acked-by: Matan Azrad <ma...@nvidia.com> --- drivers/net/mlx5/linux/mlx5_os.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/net/mlx5/linux/mlx5_os.c b/drivers/net/mlx5/linux/mlx5_os.c index e157795b63..69d3e1e3ad 100644 --- a/drivers/net/mlx5/linux/mlx5_os.c +++ b/drivers/net/mlx5/linux/mlx5_os.c @@ -977,10 +977,6 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, strerror(rte_errno)); goto error; } - if (config->dv_miss_info) { - if (switch_info->master || switch_info->representor) - config->dv_xmeta_en = MLX5_XMETA_MODE_META16; - } sh = mlx5_alloc_shared_dev_ctx(spawn, config); if (!sh) return NULL; @@ -1242,6 +1238,10 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev, /* Override some values set by hardware configuration. */ mlx5_args(config, dpdk_dev->devargs); /* Update final values for devargs before check sibling config. */ + if (config->dv_miss_info) { + if (switch_info->master || switch_info->representor) + config->dv_xmeta_en = MLX5_XMETA_MODE_META16; + } #if !defined(HAVE_IBV_FLOW_DV_SUPPORT) || !defined(HAVE_MLX5DV_DR) if (config->dv_flow_en) { DRV_LOG(WARNING, "DV flow is not supported."); -- 2.25.1