devargs: make devargs list private
authorGaetan Rivet <gaetan.rivet@6wind.com>
Mon, 23 Apr 2018 23:54:48 +0000 (01:54 +0200)
committerThomas Monjalon <thomas@monjalon.net>
Wed, 25 Apr 2018 01:58:24 +0000 (03:58 +0200)
Initially, rte_devargs was meant to be populated once and sometimes
accessed, then never emptied.

With the new hotplug functionality having better standing, new usage
appeared with repeated addition of devices and their subsequent removal.

Exposing devargs_list pushed bus drivers and libraries to be careless
and inconsistent in their memory management. Making it private will
allow to rationalize this part of the EAL and ensure that fewer memory
leaks occur during operations.

Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
doc/guides/rel_notes/deprecation.rst
lib/librte_eal/common/eal_common_devargs.c
lib/librte_eal/common/include/rte_devargs.h
lib/librte_eal/rte_eal_version.map

index ac90cf5..b35aef3 100644 (file)
@@ -16,7 +16,6 @@ Deprecation Notices
 
   - removal of ``name`` and ``args`` fields.
   - The enum ``rte_devtype`` was used to identify a bus and will disappear.
-  - The ``rte_devargs_list`` will be made private.
   - Functions previously deprecated will change or disappear:
 
     + ``rte_eal_devargs_add``
index c6c5eab..a7f374c 100644 (file)
@@ -18,6 +18,9 @@
 #include <rte_tailq.h>
 #include "eal_private.h"
 
+/** user device double-linked queue type definition */
+TAILQ_HEAD(rte_devargs_list, rte_devargs);
+
 /** Global list of user devices */
 struct rte_devargs_list devargs_list =
        TAILQ_HEAD_INITIALIZER(devargs_list);
index aba3148..e48cc3c 100644 (file)
@@ -59,12 +59,6 @@ struct rte_devargs {
        char *args;
 };
 
-/** user device double-linked queue type definition */
-TAILQ_HEAD(rte_devargs_list, rte_devargs);
-
-/** Global list of user devices */
-extern struct rte_devargs_list devargs_list;
-
 /**
  * Parse a devargs string.
  *
index 9d2d517..beb616d 100644 (file)
@@ -2,7 +2,6 @@ DPDK_2.0 {
        global:
 
        __rte_panic;
-       devargs_list;
        eal_parse_sysfs_value;
        eal_timer_source;
        lcore_config;