04/04/2018 14:09, Burakov, Anatoly:
> 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?

It does not fully change the API, since the success value is not changed.
I think we can accept one more error value if doxygen is properly updated.



Reply via email to