eal: probe new virtual bus after other bus devices
authorJan Blunck <jblunck@infradead.org>
Tue, 11 Apr 2017 15:44:05 +0000 (17:44 +0200)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Fri, 14 Apr 2017 13:23:29 +0000 (15:23 +0200)
Also see commit f4ce209a8ce5 ("eal: postpone vdev initialization").

Signed-off-by: Jan Blunck <jblunck@infradead.org>
lib/librte_eal/common/eal_common_bus.c

index 4638e78..8f9baf8 100644 (file)
@@ -86,9 +86,14 @@ int
 rte_bus_probe(void)
 {
        int ret;
-       struct rte_bus *bus;
+       struct rte_bus *bus, *vbus = NULL;
 
        TAILQ_FOREACH(bus, &rte_bus_list, next) {
+               if (!strcmp(bus->name, "virtual")) {
+                       vbus = bus;
+                       continue;
+               }
+
                ret = bus->probe();
                if (ret) {
                        RTE_LOG(ERR, EAL, "Bus (%s) probe failed.\n",
@@ -97,6 +102,15 @@ rte_bus_probe(void)
                }
        }
 
+       if (vbus) {
+               ret = vbus->probe();
+               if (ret) {
+                       RTE_LOG(ERR, EAL, "Bus (%s) probe failed.\n",
+                               vbus->name);
+                       return ret;
+               }
+       }
+
        return 0;
 }