net/mlx5: fix probing device in legacy bonding mode
authorViacheslav Ovsiienko <viacheslavo@nvidia.com>
Wed, 21 Apr 2021 08:10:13 +0000 (08:10 +0000)
committerRaslan Darawsheh <rasland@nvidia.com>
Wed, 28 Apr 2021 06:43:40 +0000 (08:43 +0200)
If the device was configured as legacy bond one (without
involving E-Switch), the mlx5 PMD erroneously tried to deduce
the vport index raising the fatal error and preventing
device from being used.

The patch checks whether there is E-Switch present and we
should use vport index indeed.

Fixes: 2eb4d0107acc ("net/mlx5: refactor PCI probing on Linux")
Fixes: d5c06b1b10ae ("net/mlx5: query vport index match mode and parameters")
Cc: stable@dpdk.org
Signed-off-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
drivers/net/mlx5/linux/mlx5_os.c

index 17d0533..479ee7d 100644 (file)
@@ -1097,7 +1097,8 @@ err_secondary:
        }
        if (devx_port.comp_mask & MLX5DV_DEVX_PORT_VPORT) {
                priv->vport_id = devx_port.vport_num;
-       } else if (spawn->pf_bond >= 0) {
+       } else if (spawn->pf_bond >= 0 &&
+                  (switch_info->representor || switch_info->master)) {
                DRV_LOG(ERR, "can't deduce vport index for port %d"
                             " on bonding device %s",
                             spawn->phys_port,