Signed-off-by: Panu Matilainen <pmatilai at redhat.com>
---
 lib/librte_eal/linuxapp/eal/eal.c | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/lib/librte_eal/linuxapp/eal/eal.c 
b/lib/librte_eal/linuxapp/eal/eal.c
index 33e1067..cc66d9f 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -530,6 +530,24 @@ eal_log_level_parse(int argc, char **argv)
        optind = 0; /* reset getopt lib */
 }

+static int
+eal_plugin_add(const char *path)
+{
+       struct shared_driver *solib;
+
+       solib = malloc(sizeof(*solib));
+       if (solib == NULL) {
+               RTE_LOG(ERR, EAL, "malloc(solib) failed\n");
+               return -1;
+       }
+       memset(solib, 0, sizeof(*solib));
+       strncpy(solib->name, path, PATH_MAX-1);
+       solib->name[PATH_MAX-1] = 0;
+       TAILQ_INSERT_TAIL(&solib_list, solib, next);
+
+       return 0;
+}
+
 /* Parse the argument given in the command line of the application */
 static int
 eal_parse_args(int argc, char **argv)
@@ -538,7 +556,6 @@ eal_parse_args(int argc, char **argv)
        char **argvopt;
        int option_index;
        char *prgname = argv[0];
-       struct shared_driver *solib;

        argvopt = argv;

@@ -570,15 +587,8 @@ eal_parse_args(int argc, char **argv)

                /* force loading of external driver */
                case 'd':
-                       solib = malloc(sizeof(*solib));
-                       if (solib == NULL) {
-                               RTE_LOG(ERR, EAL, "malloc(solib) failed\n");
+                       if (eal_plugin_add(optarg) == -1)
                                return -1;
-                       }
-                       memset(solib, 0, sizeof(*solib));
-                       strncpy(solib->name, optarg, PATH_MAX-1);
-                       solib->name[PATH_MAX-1] = 0;
-                       TAILQ_INSERT_TAIL(&solib_list, solib, next);
                        break;

                /* long options */
-- 
2.4.3

Reply via email to