net/mlx5: Use native_port_num as 1st option of device index
authorRongwei Liu <rongweil@nvidia.com>
Tue, 12 Oct 2021 07:40:52 +0000 (10:40 +0300)
committerSaeed Mahameed <saeedm@nvidia.com>
Sat, 16 Oct 2021 00:37:47 +0000 (17:37 -0700)
Using "native_port_num" can support more NICs.

Fallback to PCIe IDs if "native_port_num" query fails.

Signed-off-by: Rongwei Liu <rongweil@nvidia.com>
Reviewed-by: Mark Bloch <mbloch@nvidia.com>
Signed-off-by: Saeed Mahameed <saeedm@nvidia.com>
include/linux/mlx5/driver.h

index aecc38b90de53b472b970973a25e00ba5e52db3d..cf508685abca5084070730313bbeb1ebfa2375de 100644 (file)
@@ -1245,7 +1245,12 @@ static inline int mlx5_core_native_port_num(struct mlx5_core_dev *dev)
 
 static inline int mlx5_get_dev_index(struct mlx5_core_dev *dev)
 {
-       return PCI_FUNC(dev->pdev->devfn);
+       int idx = MLX5_CAP_GEN(dev, native_port_num);
+
+       if (idx >= 1 && idx <= MLX5_MAX_PORTS)
+               return idx - 1;
+       else
+               return PCI_FUNC(dev->pdev->devfn);
 }
 
 enum {