Commit f7a6b9eaff3e6 ("bpf: Extend BTF UAPI vlen, kinds to use unused bits") extended the return value for btf_vlen() to __u32, triggering errors for cases where an int was used to store return value. Fix these cases for perf as was done for other libbpf consumers. Reported-by: Mark Brown Signed-off-by: Alan Maguire --- tools/perf/builtin-trace.c | 6 +++--- tools/perf/util/btf.c | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index 48615ddccd93..9903d79c4b77 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c @@ -964,7 +964,7 @@ static bool syscall_arg__strtoul_btf_enum(char *bf, size_t size, struct syscall_ struct btf *btf = arg->trace->btf; struct btf_enum *be = btf_enum(bt); - for (int i = 0; i < btf_vlen(bt); ++i, ++be) { + for (unsigned int i = 0; i < btf_vlen(bt); ++i, ++be) { const char *name = btf__name_by_offset(btf, be->name_off); int max_len = max(size, strlen(name)); @@ -1009,9 +1009,9 @@ static bool syscall_arg__strtoul_btf_type(char *bf, size_t size, struct syscall_ static size_t btf_enum_scnprintf(const struct btf_type *type, struct btf *btf, char *bf, size_t size, int val) { struct btf_enum *be = btf_enum(type); - const int nr_entries = btf_vlen(type); + const unsigned int nr_entries = btf_vlen(type); - for (int i = 0; i < nr_entries; ++i, ++be) { + for (unsigned int i = 0; i < nr_entries; ++i, ++be) { if (be->val == val) { return scnprintf(bf, size, "%s", btf__name_by_offset(btf, be->name_off)); diff --git a/tools/perf/util/btf.c b/tools/perf/util/btf.c index bb163fe87767..1716b49d3568 100644 --- a/tools/perf/util/btf.c +++ b/tools/perf/util/btf.c @@ -14,7 +14,7 @@ const struct btf_member *__btf_type__find_member_by_name(struct btf *btf, { const struct btf_type *t = btf__type_by_id(btf, type_id); const struct btf_member *m; - int i; + unsigned int i; for (i = 0, m = btf_members(t); i < btf_vlen(t); i++, m++) { const char *current_member_name = btf__name_by_offset(btf, m->name_off); -- 2.47.3