[dpdk-dev] [PATCH v4 03/10] bus/vdev: do not reference devargs list
Gaetan Rivet
gaetan.rivet at 6wind.com
Tue Apr 24 00:41:03 CEST 2018
This list should not be operated upon by drivers.
Use the public API to achieve the same functionalities.
Signed-off-by: Gaetan Rivet <gaetan.rivet at 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 f8dd1f5e6..d100f3232 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
@@ -228,7 +228,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;
@@ -278,10 +278,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;
}
@@ -309,10 +307,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
More information about the dev
mailing list