[dpdk-dev,v3,03/10] bus/vdev: do not reference devargs list

Message ID c264734cc0537262cbde51e082c94cf6d94a224b.1521587199.git.gaetan.rivet@6wind.com (mailing list archive)
State Superseded, archived
Headers

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation fail Compilation issues

Commit Message

Gaëtan Rivet March 20, 2018, 11:20 p.m. UTC
  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@6wind.com>
---
 drivers/bus/vdev/Makefile |  1 +
 drivers/bus/vdev/vdev.c   | 11 +++--------
 2 files changed, 4 insertions(+), 8 deletions(-)
  

Comments

Jianfeng Tan March 21, 2018, 5:41 a.m. UTC | #1
On 3/21/2018 7:20 AM, Gaetan Rivet wrote:
> 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@6wind.com>

Acked-by: Jianfeng Tan <jianfeng.tan@intel.com>

Thanks,
Jianfeng

> ---
>   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)
  

Patch

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)