On Tue, Feb 25, 2025 at 12:53 PM Martin KaFai Lau <martin.lau@xxxxxxxxx> wrote: > > On 2/21/25 8:47 AM, Amery Hung wrote: > > +static int st_ops_gen_epilogue_with_kfunc(struct bpf_insn *insn_buf, const struct bpf_prog *prog, > > + s16 ctx_stack_off) > > +{ > > + struct bpf_insn *insn = insn_buf; > > + > > + /* r1 = 0; > > + * r0 = bpf_cgroup_from_id(r1); > > + * if r0 != 0 goto pc+6; > > + * r1 = stack[ctx_stack_off]; // r1 will be "u64 *ctx" > > + * r1 = r1[0]; // r1 will be "struct st_ops *args" > > + * r6 = r1->a; > > + * r6 += 10000; > > + * r1->a = r6; > > + * goto pc+2 > > + * r1 = r0; > > + * bpf_cgroup_release(r1); > > + * r0 = r6; > > I think r6 is not initialized on the "r0 != 0" case. > I will insert r6 = 0 after the first epilogue instruction. Thanks, Amery > Others lgtm. >