diff mbox series

[bpf-next] bpf: fix a libbpf loader issue

Message ID 20181121192242.1802994-1-yhs@fb.com
State Accepted, archived
Delegated to: BPF Maintainers
Headers show
Series [bpf-next] bpf: fix a libbpf loader issue | expand

Commit Message

Yonghong Song Nov. 21, 2018, 7:22 p.m. UTC
Commit 2993e0515bb4 ("tools/bpf: add support to read .BTF.ext sections")
added support to read .BTF.ext sections from an object file, create
and pass prog_btf_fd and func_info to the kernel.

The program btf_fd (prog->btf_fd) is initialized to be -1 to please
zclose so we do not need special handling dur prog close.
Passing -1 to the kernel, however, will cause loading error.
Passing btf_fd 0 to the kernel if prog->btf_fd is invalid
fixed the problem.

Fixes: 2993e0515bb4 ("tools/bpf: add support to read .BTF.ext sections")
Reported-by: Andrey Ignatov <rdna@fb.com>
Reported-by: Emre Cantimur <haydum@fb.com>
Tested-by: Andrey Ignatov <rdna@fb.com>
Signed-off-by: Yonghong Song <yhs@fb.com>
---
 tools/lib/bpf/libbpf.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Martin KaFai Lau Nov. 21, 2018, 8:02 p.m. UTC | #1
On Wed, Nov 21, 2018 at 11:22:42AM -0800, Yonghong Song wrote:
> Commit 2993e0515bb4 ("tools/bpf: add support to read .BTF.ext sections")
> added support to read .BTF.ext sections from an object file, create
> and pass prog_btf_fd and func_info to the kernel.
> 
> The program btf_fd (prog->btf_fd) is initialized to be -1 to please
> zclose so we do not need special handling dur prog close.
> Passing -1 to the kernel, however, will cause loading error.
> Passing btf_fd 0 to the kernel if prog->btf_fd is invalid
> fixed the problem.
Acked-by: Martin KaFai Lau <kafai@fb.com>
Daniel Borkmann Nov. 21, 2018, 9:23 p.m. UTC | #2
On 11/21/2018 08:22 PM, Yonghong Song wrote:
> Commit 2993e0515bb4 ("tools/bpf: add support to read .BTF.ext sections")
> added support to read .BTF.ext sections from an object file, create
> and pass prog_btf_fd and func_info to the kernel.
> 
> The program btf_fd (prog->btf_fd) is initialized to be -1 to please
> zclose so we do not need special handling dur prog close.
> Passing -1 to the kernel, however, will cause loading error.
> Passing btf_fd 0 to the kernel if prog->btf_fd is invalid
> fixed the problem.
> 
> Fixes: 2993e0515bb4 ("tools/bpf: add support to read .BTF.ext sections")
> Reported-by: Andrey Ignatov <rdna@fb.com>
> Reported-by: Emre Cantimur <haydum@fb.com>
> Tested-by: Andrey Ignatov <rdna@fb.com>
> Signed-off-by: Yonghong Song <yhs@fb.com>

Applied, thanks!
diff mbox series

Patch

diff --git a/tools/lib/bpf/libbpf.c b/tools/lib/bpf/libbpf.c
index cb6565d79603..f022ac82e882 100644
--- a/tools/lib/bpf/libbpf.c
+++ b/tools/lib/bpf/libbpf.c
@@ -1387,7 +1387,7 @@  load_program(struct bpf_program *prog, struct bpf_insn *insns, int insns_cnt,
 	load_attr.license = license;
 	load_attr.kern_version = kern_version;
 	load_attr.prog_ifindex = prog->prog_ifindex;
-	load_attr.prog_btf_fd = prog->btf_fd;
+	load_attr.prog_btf_fd = prog->btf_fd >= 0 ? prog->btf_fd : 0;
 	load_attr.func_info = prog->func_info;
 	load_attr.func_info_rec_size = prog->func_info_rec_size;
 	load_attr.func_info_cnt = func_info_cnt;