On 04-Apr-18 12:27 PM, Arnon Warshavsky wrote:
replace panic calls with log and retrun value.

Signed-off-by: Arnon Warshavsky <ar...@qwilt.com>
---
  lib/librte_eal/common/eal_common_memzone.c | 5 +++--
  1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/lib/librte_eal/common/eal_common_memzone.c 
b/lib/librte_eal/common/eal_common_memzone.c
index 1ab3ade..fa0a407 100644
--- a/lib/librte_eal/common/eal_common_memzone.c
+++ b/lib/librte_eal/common/eal_common_memzone.c
@@ -314,8 +314,9 @@
        if (addr == NULL)
                ret = -EINVAL;
        else if (mcfg->memzone_cnt == 0) {
-               rte_panic("%s(): memzone address not NULL but memzone_cnt is 
0!\n",
-                               __func__);
+               RTE_LOG(CRIT, EAL, "%s(): memzone address not NULL but 
memzone_cnt"
+                               " is 0!\n", __func__);
+               return -1;
        } else {
                memset(&mcfg->memzone[idx], 0, sizeof(mcfg->memzone[idx]));
                mcfg->memzone_cnt--;


This changes public API. For now, memzone docs mention either return value of 0, or return value of -EINVAL in case of invalid arguments:

/**
 * Free a memzone.
 *
 * @param mz
 *   A pointer to the memzone
 * @return
 *  -EINVAL - invalid parameter.
 *  0 - success
 */

I'm not sure returning -EINVAL is suitable in this case (the parameter was valid, but an internal error happened - I can't think of any suitable errno value off hand), and adding a new return value changes API, which presumably would require a deprecation notice.

Thomas?

--
Thanks,
Anatoly

Reply via email to