> diff --git a/tools/bpf/bpftool/btf.c b/tools/bpf/bpftool/btf.c
> index bca0a3982f09..4d8991c99b48 100644
> --- a/tools/bpf/bpftool/btf.c
> +++ b/tools/bpf/bpftool/btf.c
[ ... ]
> @@ -415,6 +418,88 @@ static int dump_btf_type(const struct btf *btf, __u32 id,
> }
> break;
> }
> + case BTF_KIND_LOC_PARAM: {
> + const struct btf_loc_param *p = btf_loc_param(t);
> + __u32 *v = (__u32 *)(p + 1);
> + __u32 i, vlen = btf_vlen(t);
> +
> + if (json_output) {
> + jsonw_uint_field(w, "size", t->size);
> + jsonw_uint_field(w, "flags", p->flags);
> + jsonw_uint_field(w, "vlen", vlen);
> + jsonw_name(w, "values");
> + jsonw_start_array(w);
> + } else {
> + printf(" size=%u flags=0x%x vlen=%u", t->size,
> p->flags, vlen);
> + }
> + for (i = 0; i < vlen; i++, v++) {
> + if (json_output) {
> + jsonw_start_object(w);
> + jsonw_uint_field(w, "value", *v);
> + jsonw_end_object(w);
> + } else {
> + printf("\n\t value=%u", *v);
^^^^^
This isn't a bug, but was the extra space after '\n\t' in the format
strings intentional? Looking at the existing dump_btf_type() arms,
DATASEC prints "\n\ttype_id=%u offset=%u size=%u" with just '\n\t' and
no leading space. The new LOC_PARAM, LOC_PROTO, and LOCSEC arms all use
'\n\t ' (tab followed by a space), which indents the output one column
further than the rest of the function's raw dump lines. Could the space
be dropped to align with the DATASEC style?
> + }
> + }
> + if (json_output)
> + jsonw_end_array(w);
> + break;
> + }
> + case BTF_KIND_LOC_PROTO: {
[ ... ]
> + case BTF_KIND_LOCSEC: {
[ ... ]
---
AI reviewed your patch. Please fix the bug or email reply why it's not a bug.
See: https://github.com/kernel-patches/vmtest/blob/master/ci/claude/README.md
CI run summary: https://github.com/kernel-patches/bpf/actions/runs/33537080133