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.