replace panic calls with log and return value. Signed-off-by: Arnon Warshavsky <ar...@qwilt.com> Acked-by: Anatoly Burakov <anatoly.bura...@intel.com> --- lib/librte_eal/linuxapp/eal/eal_hugepage_info.c | 37 +++++++++++++++++-------- 1 file changed, 26 insertions(+), 11 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c b/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c index db5aabd..797b8fa 100644 --- a/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c +++ b/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c @@ -145,8 +145,8 @@ return num_pages; } -static uint64_t -get_default_hp_size(void) +static int +get_default_hp_size(uint64_t *result) { const char proc_meminfo[] = "/proc/meminfo"; const char str_hugepagesz[] = "Hugepagesize:"; @@ -155,8 +155,11 @@ unsigned long long size = 0; FILE *fd = fopen(proc_meminfo, "r"); - if (fd == NULL) - rte_panic("Cannot open %s\n", proc_meminfo); + if (fd == NULL) { + RTE_LOG(CRIT, EAL, "%s(): Cannot open %s\n", + __func__, proc_meminfo); + return -1; + } while(fgets(buffer, sizeof(buffer), fd)){ if (strncmp(buffer, str_hugepagesz, hugepagesz_len) == 0){ size = rte_str_to_size(&buffer[hugepagesz_len]); @@ -164,9 +167,13 @@ } } fclose(fd); - if (size == 0) - rte_panic("Cannot get default hugepage size from %s\n", proc_meminfo); - return size; + if (size == 0) { + RTE_LOG(CRIT, EAL, "%s(): Cannot get default hugepage size from %s\n", + __func__, proc_meminfo); + return -1; + } + *result = size; + return 0; } static int @@ -191,11 +198,19 @@ int retval = -1; FILE *fd = fopen(proc_mounts, "r"); - if (fd == NULL) - rte_panic("Cannot open %s\n", proc_mounts); + if (fd == NULL) { + RTE_LOG(CRIT, EAL, "%s(): Cannot open %s\n", + __func__, proc_mounts); + return -ENOENT; + } - if (default_size == 0) - default_size = get_default_hp_size(); + if (default_size == 0) { + retval = get_default_hp_size(&default_size); + if (retval) { + fclose(fd); + return retval; + } + } while (fgets(buf, sizeof(buf), fd)){ if (rte_strsplit(buf, sizeof(buf), splitstr, _FIELDNAME_MAX, -- 1.8.3.1