On Thu, Oct 24, 2024 at 3:17 PM Eduard Zingerman <eddyz87@xxxxxxxxx> wrote: > > On Thu, 2024-10-24 at 15:14 -0700, Alexei Starovoitov wrote: > > [...] > > > > @@ -16291,7 +16292,8 @@ static void mark_fastcall_pattern_for_call(struct bpf_verifier_env *env, > > > return; > > > > > > clobbered_regs_mask = kfunc_fastcall_clobber_mask(&meta); > > > - can_be_inlined = is_fastcall_kfunc_call(&meta); > > > + can_be_inlined = is_fastcall_kfunc_call(&meta) && !call->off && > > > > what call->off check is for? > > call->imm is BTF id, call->off is ID of the BTF itself. it's actually offset in fd_array > I asked Vadim to add this check to make sure that imm points to the > kernel BTF. makes sense. is_fastcall_kfunc_call(&meta) && meta.btf == btf_vmlinux && .. would have been much more obvious.