libbpf: fix libbpf_print
With the recent print rework we now have the following problem: pr_{warning,info,debug} expand to __pr which calls libbpf_print. libbpf_print does va_start and calls __libbpf_pr with va_list argument. In __base_pr we again do va_start. Because the next argument is a va_list, we don't get correct pointer to the argument (and print noting in my case, I don't know why it doesn't crash tbh). Fix this by changing libbpf_print_fn_t signature to accept va_list and remove unneeded calls to va_start in the existing users. Alternatively, this can we solved by exporting __libbpf_pr and changing __pr macro to (and killing libbpf_print): { if (__libbpf_pr) __libbpf_pr(level, "libbpf: " fmt, ##__VA_ARGS__) } Signed-off-by:Stanislav Fomichev <sdf@google.com> Acked-by:
Yonghong Song <yhs@fb.com> Signed-off-by:
Alexei Starovoitov <ast@kernel.org>
Showing
- tools/lib/bpf/libbpf.c 4 additions, 10 deletionstools/lib/bpf/libbpf.c
- tools/lib/bpf/libbpf.h 1 addition, 2 deletionstools/lib/bpf/libbpf.h
- tools/perf/util/bpf-loader.c 2 additions, 8 deletionstools/perf/util/bpf-loader.c
- tools/testing/selftests/bpf/test_btf.c 2 additions, 11 deletionstools/testing/selftests/bpf/test_btf.c
- tools/testing/selftests/bpf/test_libbpf_open.c 2 additions, 8 deletionstools/testing/selftests/bpf/test_libbpf_open.c
- tools/testing/selftests/bpf/test_progs.c 2 additions, 8 deletionstools/testing/selftests/bpf/test_progs.c
Loading
Please register or sign in to comment