New upstream version 18.05
[deb_dpdk.git] / test / test / test_kni.c
index e4839cd..56773c8 100644 (file)
@@ -357,6 +357,8 @@ test_kni_processing(uint16_t port_id, struct rte_mempool *mp)
        struct rte_kni_conf conf;
        struct rte_eth_dev_info info;
        struct rte_kni_ops ops;
+       const struct rte_pci_device *pci_dev;
+       const struct rte_bus *bus = NULL;
 
        if (!mp)
                return -1;
@@ -366,8 +368,13 @@ test_kni_processing(uint16_t port_id, struct rte_mempool *mp)
        memset(&ops, 0, sizeof(ops));
 
        rte_eth_dev_info_get(port_id, &info);
-       conf.addr = info.pci_dev->addr;
-       conf.id = info.pci_dev->id;
+       if (info.device)
+               bus = rte_bus_find_by_device(info.device);
+       if (bus && !strcmp(bus->name, "pci")) {
+               pci_dev = RTE_DEV_TO_PCI(info.device);
+               conf.addr = pci_dev->addr;
+               conf.id = pci_dev->id;
+       }
        snprintf(conf.name, sizeof(conf.name), TEST_KNI_PORT);
 
        /* core id 1 configured for kernel thread */
@@ -465,6 +472,8 @@ test_kni(void)
        struct rte_kni_conf conf;
        struct rte_eth_dev_info info;
        struct rte_kni_ops ops;
+       const struct rte_pci_device *pci_dev;
+       const struct rte_bus *bus;
 
        /* Initialize KNI subsytem */
        rte_kni_init(KNI_TEST_MAX_PORTS);
@@ -480,7 +489,7 @@ test_kni(void)
                return -1;
        }
 
-       nb_ports = rte_eth_dev_count();
+       nb_ports = rte_eth_dev_count_avail();
        if (nb_ports == 0) {
                printf("no supported nic port found\n");
                return -1;
@@ -523,8 +532,15 @@ test_kni(void)
        memset(&conf, 0, sizeof(conf));
        memset(&ops, 0, sizeof(ops));
        rte_eth_dev_info_get(port_id, &info);
-       conf.addr = info.pci_dev->addr;
-       conf.id = info.pci_dev->id;
+       if (info.device)
+               bus = rte_bus_find_by_device(info.device);
+       else
+               bus = NULL;
+       if (bus && !strcmp(bus->name, "pci")) {
+               pci_dev = RTE_DEV_TO_PCI(info.device);
+               conf.addr = pci_dev->addr;
+               conf.id = pci_dev->id;
+       }
        conf.group_id = port_id;
        conf.mbuf_size = MAX_PACKET_SZ;
 
@@ -552,8 +568,15 @@ test_kni(void)
        memset(&info, 0, sizeof(info));
        memset(&ops, 0, sizeof(ops));
        rte_eth_dev_info_get(port_id, &info);
-       conf.addr = info.pci_dev->addr;
-       conf.id = info.pci_dev->id;
+       if (info.device)
+               bus = rte_bus_find_by_device(info.device);
+       else
+               bus = NULL;
+       if (bus && !strcmp(bus->name, "pci")) {
+               pci_dev = RTE_DEV_TO_PCI(info.device);
+               conf.addr = pci_dev->addr;
+               conf.id = pci_dev->id;
+       }
        conf.group_id = port_id;
        conf.mbuf_size = MAX_PACKET_SZ;