On Mon, 2020-10-05 at 12:41 -0700, Jakub Kicinski wrote:

> > Now you can freely add any attributes, and, due to strict validation,
> > anything not specified in the policy will be rejected, whether by being
> > out of range (> maxattr) or not specified (NLA_UNSPEC).
> 
> 100%, but in ethtool policy is defined in a different compilation unit
> than the op array.

Ah. OK, then that won't work, of course, never mind.

I'd probably go with your preference then, but perhaps drop the actual
size definition:

const struct nla_policy policy[] = {
...
};

extern const struct nla_policy policy[OTHER_ATTR + 1];

op = {
        .policy = policy,
        .max_attr = ARRAY_SIZE(policy) - 1,
}


But that'd really just be to save typing copying it if it ever changes,
since it's compiler checked for consistency.

johannes

Reply via email to