[dpdk-dev] [PATCH v4] ethdev: add sanity checks in control APIs

Andrew Rybchenko andrew.rybchenko at oktetlabs.ru
Thu Apr 15 14:43:00 CEST 2021


On 4/15/21 3:20 PM, Thomas Monjalon wrote:
> 15/04/2021 14:03, Andrew Rybchenko:
>> On 4/15/21 2:57 PM, Thomas Monjalon wrote:
>>> 15/04/2021 10:15, Andrew Rybchenko:
>>>>>  	RTE_FUNC_PTR_OR_ERR_RET(*dev->dev_ops->dev_configure, -ENOTSUP);
>>>> In theory, the first argument is sufficient to make the ops
>>>> check, but I think it is the right solution to keep it as is
>>>> since current tendency is to check operation support when
>>>> driver callback is really required and we're going to use it.
>>>> However, if we do it just after port_id check, we'll have a
>>>> way to check for callback support without any side effects
>>>> if we provide invalid argument value. I.e. if -ENOTSUP is
>>>> returned, callback is not supported, if -EINVAL, callback is
>>>> supported (but argument is invalid and nothing done).
>>>> However, it looks a bit fragile and not always possible.
>>>> Thoughts on it are welcome.
>>> Sorry I don't understand it fully.
>>> You say we should check for ENOTSUP at the very beginning?
>>
>> I'm just trying to consider it and understand if it would be
>> right or wrong.
> 
> I think it's better to check things when they are required.
> If the application does not give the right parameter,
> it won't be caught until a supporting device will be used.
> 
> If the appplication gives the wrong parameter on purpose,
> because it won't be supported, then it's better not calling the function.
> 

OK, makes sense.



More information about the dev mailing list