]> git.droids-corp.org - dpdk.git/commitdiff
net/mlx5: update PCI address retrieving routine
authorViacheslav Ovsiienko <viacheslavo@mellanox.com>
Wed, 25 Sep 2019 07:53:25 +0000 (07:53 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Mon, 7 Oct 2019 13:00:58 +0000 (15:00 +0200)
The routine mlx5_ibv_device_to_pci_addr() takes Infiniband
device list object, takes the device sysfs path from there
and retrieves PCI address. The routine may be implemented
in more generic way by taking sysfs path directly as parameter
and can be used for getting PCI address of netdevs.

The generic routine is renamed to mlx5_dev_to_pci_addr()

Signed-off-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com>
Acked-by: Matan Azrad <matan@mellanox.com>
drivers/net/mlx5/mlx5.c
drivers/net/mlx5/mlx5.h
drivers/net/mlx5/mlx5_ethdev.c

index c33e49df1f9aaa08b400f319233744daf4ddcecb..dcb22b2591546f94880f67caff0c77e39da95f49 100644 (file)
@@ -2183,7 +2183,8 @@ mlx5_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
                struct rte_pci_addr pci_addr;
 
                DRV_LOG(DEBUG, "checking device \"%s\"", ibv_list[ret]->name);
-               if (mlx5_ibv_device_to_pci_addr(ibv_list[ret], &pci_addr))
+               if (mlx5_dev_to_pci_addr
+                       (ibv_list[ret]->ibdev_path, &pci_addr))
                        continue;
                if (pci_dev->addr.domain != pci_addr.domain ||
                    pci_dev->addr.bus != pci_addr.bus ||
index ba27421fc9ba2adbecca4de31e533fb6ece9b2ad..7838f8184142cb086bce8d6526e59ea3dd070a83 100644 (file)
@@ -701,8 +701,8 @@ int mlx5_dev_get_flow_ctrl(struct rte_eth_dev *dev,
                           struct rte_eth_fc_conf *fc_conf);
 int mlx5_dev_set_flow_ctrl(struct rte_eth_dev *dev,
                           struct rte_eth_fc_conf *fc_conf);
-int mlx5_ibv_device_to_pci_addr(const struct ibv_device *device,
-                               struct rte_pci_addr *pci_addr);
+int mlx5_dev_to_pci_addr(const char *dev_path,
+                        struct rte_pci_addr *pci_addr);
 void mlx5_dev_link_status_handler(void *arg);
 void mlx5_dev_interrupt_handler(void *arg);
 void mlx5_dev_interrupt_handler_devx(void *arg);
index ad53721f2d8ee5b252c0c04e27ed5d138e894055..71f63acf27780baf30afdd241c00c76e004361d6 100644 (file)
@@ -1131,10 +1131,10 @@ mlx5_dev_set_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
 }
 
 /**
- * Get PCI information from struct ibv_device.
+ * Get PCI information by sysfs device path.
  *
- * @param device
- *   Pointer to Ethernet device structure.
+ * @param dev_path
+ *   Pointer to device sysfs folder name.
  * @param[out] pci_addr
  *   PCI bus address output buffer.
  *
@@ -1142,12 +1142,12 @@ mlx5_dev_set_flow_ctrl(struct rte_eth_dev *dev, struct rte_eth_fc_conf *fc_conf)
  *   0 on success, a negative errno value otherwise and rte_errno is set.
  */
 int
-mlx5_ibv_device_to_pci_addr(const struct ibv_device *device,
-                           struct rte_pci_addr *pci_addr)
+mlx5_dev_to_pci_addr(const char *dev_path,
+                    struct rte_pci_addr *pci_addr)
 {
        FILE *file;
        char line[32];
-       MKSTR(path, "%s/device/uevent", device->ibdev_path);
+       MKSTR(path, "%s/device/uevent", dev_path);
 
        file = fopen(path, "rb");
        if (file == NULL) {