On 2/26/18 11:20 AM, Serhey Popovych wrote: > Stephen Hemminger wrote: >> On Thu, 22 Feb 2018 15:02:06 +0200 >> Serhey Popovych <serhe.popov...@gmail.com> wrote: >> >>> +struct iplink_parse_args { >>> + const char *dev; >>> + const char *name; >>> + const char *type; >>> + >>> + /* This definitely must be the last one and initialized >>> + * by the caller of iplink_parse() that will initialize rest. >>> + */ >>> + struct iplink_req *req; >>> +}; >>> + >> >> No control block please. > Accepted. > >> If you have too many arguments, then that means you need to do >> some refactoring. > > So using structure as single argument to a function isn't an option? > >> > >
As I mentioned before, iplink_parse should not be used by vxcan or veth as they only want a subset of the parsing. Once you take those users out, iplink_parse becomes local to iplink.c with a single user. In which case I suspect the compiler will always inline the function so no refactoring on the number of arguments is needed.