On 13-Apr-18 7:30 PM, Arnon Warshavsky wrote:
replace panic calls with log and retrun value.

Signed-off-by: Arnon Warshavsky <ar...@qwilt.com>
---
  lib/librte_eal/linuxapp/eal/eal_hugepage_info.c | 21 +++++++++++++++------
  1 file changed, 15 insertions(+), 6 deletions(-)

diff --git a/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c 
b/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c
index 8bbf771..43af5b5 100644
--- a/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c
+++ b/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c
@@ -80,8 +80,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 0;
+       }
        while(fgets(buffer, sizeof(buffer), fd)){
                if (strncmp(buffer, str_hugepagesz, hugepagesz_len) == 0){
                        size = rte_str_to_size(&buffer[hugepagesz_len]);
@@ -89,8 +92,11 @@
                }
        }
        fclose(fd);
-       if (size == 0)
-               rte_panic("Cannot get default hugepage size from %s\n", 
proc_meminfo);
+       if (size == 0) {
+               RTE_LOG(CRIT, EAL, "%s(): Cannot get default hugepage size from 
%s\n",
+                                                __func__, proc_meminfo);
+               return 0;
+       }
        return size;

If returning default hugepage size of 0 is now a possibility, the calling code needs to be able to handle that. Perhaps rewrite it as returning int, and accepting pointer to pagesz? e.g.

static int get_default_hp_size(uint64_t *page_sz)

and fix the code below to handle error in reading default page size?

  }
@@ -116,8 +122,11 @@
        char *retval = NULL;
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 NULL;
+       }
if (default_size == 0)
                default_size = get_default_hp_size();


--
Thanks,
Anatoly

Reply via email to