eal: move runtime directory creation after args parsing
authorAnatoly Burakov <anatoly.burakov@intel.com>
Tue, 15 May 2018 10:44:52 +0000 (11:44 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Tue, 15 May 2018 13:22:40 +0000 (15:22 +0200)
The intention of the original code was to create runtime data
directory as early as possible, however it was moved too early,
before the arguments were parsed, resulting in --file-prefix
option essentially not working.

Fix this by moving eal_create_runtime_dir() to after command
line arguments parsing.

Fixes: 56236363b481 ("eal: add directory for runtime data")

Reported-by: Andrew Rybchenko <arybchenko@solarflare.com>
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Tested-by: Andrew Rybchenko <arybchenko@solarflare.com>
lib/librte_eal/bsdapp/eal/eal.c
lib/librte_eal/linuxapp/eal/eal.c

index c890bfe..7f8475e 100644 (file)
@@ -586,13 +586,6 @@ rte_eal_init(int argc, char **argv)
        /* set log level as early as possible */
        eal_log_level_parse(argc, argv);
 
-       /* create runtime data directory */
-       if (eal_create_runtime_dir() < 0) {
-               rte_eal_init_alert("Cannot create runtime directory\n");
-               rte_errno = EACCES;
-               return -1;
-       }
-
        if (rte_eal_cpu_init() < 0) {
                rte_eal_init_alert("Cannot detect lcores.");
                rte_errno = ENOTSUP;
@@ -607,6 +600,13 @@ rte_eal_init(int argc, char **argv)
                return -1;
        }
 
+       /* create runtime data directory */
+       if (eal_create_runtime_dir() < 0) {
+               rte_eal_init_alert("Cannot create runtime directory\n");
+               rte_errno = EACCES;
+               return -1;
+       }
+
        /* FreeBSD always uses legacy memory model */
        internal_config.legacy_mem = true;
 
index bed5823..150d5dd 100644 (file)
@@ -803,13 +803,6 @@ rte_eal_init(int argc, char **argv)
        /* set log level as early as possible */
        eal_log_level_parse(argc, argv);
 
-       /* create runtime data directory */
-       if (eal_create_runtime_dir() < 0) {
-               rte_eal_init_alert("Cannot create runtime directory\n");
-               rte_errno = EACCES;
-               return -1;
-       }
-
        if (rte_eal_cpu_init() < 0) {
                rte_eal_init_alert("Cannot detect lcores.");
                rte_errno = ENOTSUP;
@@ -824,6 +817,13 @@ rte_eal_init(int argc, char **argv)
                return -1;
        }
 
+       /* create runtime data directory */
+       if (eal_create_runtime_dir() < 0) {
+               rte_eal_init_alert("Cannot create runtime directory\n");
+               rte_errno = EACCES;
+               return -1;
+       }
+
        if (eal_plugins_init() < 0) {
                rte_eal_init_alert("Cannot init plugins\n");
                rte_errno = EINVAL;