On Thu, 22 Sept 2022 at 04:39, Alexei Starovoitov <alexei.starovoitov@xxxxxxxxx> wrote: > > On Wed, Sep 21, 2022 at 9:49 AM Lorenzo Bianconi <lorenzo@xxxxxxxxxx> wrote: > > > > + /* These register types have special constraints wrt ref_obj_id > > + * and offset checks. The rest of trusted args don't. > > + */ > > + obj_ptr = reg->type == PTR_TO_CTX || reg->type == PTR_TO_BTF_ID || > > + reg2btf_ids[base_type(reg->type)]; > > + > > .. > > > /* Check if argument must be a referenced pointer, args + i has > > * been verified to be a pointer (after skipping modifiers). > > + * PTR_TO_CTX is ok without having non-zero ref_obj_id. > > */ > > Kumar, > > Looking forward to your subsequent patch to split this function. > It's definitely getting unwieldy. > > The comment above is double confusing. > 1. I think you meant to say "PTR_TO_CTX is ok with zero ref_obj_id", > right? That double negate is not easy to parse. > Yes. > 2. > PTR_TO_CTX cannot have ref_obj_id != 0. > At least I don't think it's possible, but the comment implies > that such a case may exist. > Yes, but we are checking for that later, which is why we skip it for PTR_TO_CTX. > I applied anyway, since big refactoring is coming shortly, right? Yes, which is why I tacked it on like this for now. I will be reposting later this week. Thanks!