Re: [PATCH v4 2/2] tools/bpf/bpftool: Reset vmlinux BTF after struct_ops commands

From: Emil Tsalapatis

Date: Mon Jun 29 2026 - 04:01:26 EST


On Tue Jun 23, 2026 at 10:50 PM EDT, Yichong Chen wrote:
> struct_ops frees the global btf_vmlinux object.
>
> In batch mode, a later struct_ops command can reuse stale state.
>
> Reset the BTF pointer and cached map info state.
>
> Fixes: 65c93628599d ("bpftool: Add struct_ops support")
> Signed-off-by: Yichong Chen <chenyichong@xxxxxxxxxxxxx>

Reviewed-by: Emil Tsalapatis <emil@xxxxxxxxxxxxxxx>

> ---
> tools/bpf/bpftool/struct_ops.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/tools/bpf/bpftool/struct_ops.c b/tools/bpf/bpftool/struct_ops.c
> index aa43dead249c..835e5e561f7f 100644
> --- a/tools/bpf/bpftool/struct_ops.c
> +++ b/tools/bpf/bpftool/struct_ops.c
> @@ -643,6 +643,10 @@ int do_struct_ops(int argc, char **argv)
> err = cmd_select(cmds, argc, argv, do_help);
>
> btf__free(btf_vmlinux);
> + btf_vmlinux = NULL;
> + map_info_type = NULL;
> + map_info_alloc_len = 0;
> + map_info_type_id = 0;
>
> return err;
> }