OSDN Git Service

libbpf: Streamline error reporting for low-level APIs
authorAndrii Nakryiko <andrii@kernel.org>
Tue, 25 May 2021 03:59:33 +0000 (20:59 -0700)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 26 May 2021 00:32:35 +0000 (17:32 -0700)
commitf12b654327283d158de0af170943ec5dd8cd02e5
tree08eb76796d77a1f8b4d706ceb1059ebe59383d51
parentbad2e478af3b4df9fd84b4db7779ea91bd618c16
libbpf: Streamline error reporting for low-level APIs

Ensure that low-level APIs behave uniformly across the libbpf as follows:
  - in case of an error, errno is always set to the correct error code;
  - when libbpf 1.0 mode is enabled with LIBBPF_STRICT_DIRECT_ERRS option to
    libbpf_set_strict_mode(), return -Exxx error value directly, instead of -1;
  - by default, until libbpf 1.0 is released, keep returning -1 directly.

More context, justification, and discussion can be found in "Libbpf: the road
to v1.0" document ([0]).

  [0] https://docs.google.com/document/d/1UyjTZuPFWiPFyKk1tV5an11_iaRuec6U-ZESZ54nNTY

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: John Fastabend <john.fastabend@gmail.com>
Acked-by: Toke Høiland-Jørgensen <toke@redhat.com>
Link: https://lore.kernel.org/bpf/20210525035935.1461796-4-andrii@kernel.org
tools/lib/bpf/bpf.c
tools/lib/bpf/libbpf_internal.h
tools/lib/bpf/libbpf_legacy.h