This list should not be operated upon by drivers.
Use the public API to achieve the same functionalities.

Signed-off-by: Gaetan Rivet <gaetan.ri...@6wind.com>
---
 drivers/bus/vdev/Makefile |  1 +
 drivers/bus/vdev/vdev.c   | 11 +++--------
 2 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/drivers/bus/vdev/Makefile b/drivers/bus/vdev/Makefile
index 24d424a38..bd0bb8955 100644
--- a/drivers/bus/vdev/Makefile
+++ b/drivers/bus/vdev/Makefile
@@ -10,6 +10,7 @@ LIB = librte_bus_vdev.a
 
 CFLAGS += -O3
 CFLAGS += $(WERROR_FLAGS)
+CFLAGS += -DALLOW_EXPERIMENTAL_API
 
 # versioning export map
 EXPORT_MAP := rte_bus_vdev_version.map
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
index e4bc72463..8ee264baf 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
@@ -256,7 +256,7 @@ rte_vdev_init(const char *name, const char *args)
                goto fail;
        }
 
-       TAILQ_INSERT_TAIL(&devargs_list, devargs, next);
+       rte_eal_devargs_insert(devargs);
 
        TAILQ_INSERT_TAIL(&vdev_device_list, dev, next);
        return 0;
@@ -306,10 +306,8 @@ rte_vdev_uninit(const char *name)
 
        TAILQ_REMOVE(&vdev_device_list, dev, next);
 
-       TAILQ_REMOVE(&devargs_list, devargs, next);
+       rte_eal_devargs_remove(devargs->bus->name, devargs->name);
 
-       free(devargs->args);
-       free(devargs);
        free(dev);
        return 0;
 }
@@ -337,10 +335,7 @@ vdev_scan(void)
        rte_spinlock_unlock(&vdev_custom_scan_lock);
 
        /* for virtual devices we scan the devargs_list populated via cmdline */
-       TAILQ_FOREACH(devargs, &devargs_list, next) {
-
-               if (devargs->bus != &rte_vdev_bus)
-                       continue;
+       RTE_EAL_DEVARGS_FOREACH("vdev", devargs) {
 
                dev = find_vdev(devargs->name);
                if (dev)
-- 
2.11.0

Reply via email to