[dpdk-dev] [PATCH 09/13] eal: replace rte_panic instances in common_memzone

Burakov, Anatoly anatoly.burakov at intel.com
Wed Apr 4 14:09:25 CEST 2018


On 04-Apr-18 12:27 PM, Arnon Warshavsky wrote:
> replace panic calls with log and retrun value.
> 
> Signed-off-by: Arnon Warshavsky <arnon at 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


More information about the dev mailing list