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