On Thu, Jan 14, 2021 at 1:36 PM Jakub Kicinski <k...@kernel.org> wrote: > > On Thu, 14 Jan 2021 13:07:49 -0800 Cong Wang wrote: > > - if (msk_depth) > > - nla_opt_msk = nla_next(nla_opt_msk, > > &msk_depth); > > break; > > default: > > NL_SET_ERR_MSG(extack, "Unknown tunnel option type"); > > return -EINVAL; > > } > > + > > + if (!nla_opt_msk) > > + continue; > > Why the switch from !msk_depth to !nla_opt_msk?
It is the same, when nla_opt_msk is NULL, msk_depth is 0. Checking nla_opt_msk is NULL is more readable to express that mask is not provided. > > Seems like previously providing masks for only subset of options > would have worked. I don't think so, every type has this check: if (key->enc_opts.len != mask->enc_opts.len) { NL_SET_ERR_MSG(extack, "Key and mask miss aligned"); return -EINVAL; } which guarantees the numbers are aligned. Thanks.