Skip to content

Commit ebc7b50

Browse files
davemarchevskyanakryiko
authored andcommitted
libbpf: Migrate internal use of bpf_program__get_prog_info_linear
In preparation for bpf_program__get_prog_info_linear deprecation, move the single use in libbpf to call bpf_obj_get_info_by_fd directly. Signed-off-by: Dave Marchevsky <[email protected]> Signed-off-by: Andrii Nakryiko <[email protected]> Link: https://lore.kernel.org/bpf/[email protected]
1 parent 588cd7e commit ebc7b50

File tree

1 file changed

+10
-12
lines changed

1 file changed

+10
-12
lines changed

tools/lib/bpf/libbpf.c

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -8461,28 +8461,27 @@ int libbpf_find_vmlinux_btf_id(const char *name,
84618461

84628462
static int libbpf_find_prog_btf_id(const char *name, __u32 attach_prog_fd)
84638463
{
8464-
struct bpf_prog_info_linear *info_linear;
8465-
struct bpf_prog_info *info;
8464+
struct bpf_prog_info info = {};
8465+
__u32 info_len = sizeof(info);
84668466
struct btf *btf;
84678467
int err;
84688468

8469-
info_linear = bpf_program__get_prog_info_linear(attach_prog_fd, 0);
8470-
err = libbpf_get_error(info_linear);
8469+
err = bpf_obj_get_info_by_fd(attach_prog_fd, &info, &info_len);
84718470
if (err) {
8472-
pr_warn("failed get_prog_info_linear for FD %d\n",
8473-
attach_prog_fd);
8471+
pr_warn("failed bpf_obj_get_info_by_fd for FD %d: %d\n",
8472+
attach_prog_fd, err);
84748473
return err;
84758474
}
84768475

84778476
err = -EINVAL;
8478-
info = &info_linear->info;
8479-
if (!info->btf_id) {
8477+
if (!info.btf_id) {
84808478
pr_warn("The target program doesn't have BTF\n");
84818479
goto out;
84828480
}
8483-
btf = btf__load_from_kernel_by_id(info->btf_id);
8484-
if (libbpf_get_error(btf)) {
8485-
pr_warn("Failed to get BTF of the program\n");
8481+
btf = btf__load_from_kernel_by_id(info.btf_id);
8482+
err = libbpf_get_error(btf);
8483+
if (err) {
8484+
pr_warn("Failed to get BTF %d of the program: %d\n", info.btf_id, err);
84868485
goto out;
84878486
}
84888487
err = btf__find_by_name_kind(btf, name, BTF_KIND_FUNC);
@@ -8492,7 +8491,6 @@ static int libbpf_find_prog_btf_id(const char *name, __u32 attach_prog_fd)
84928491
goto out;
84938492
}
84948493
out:
8495-
free(info_linear);
84968494
return err;
84978495
}
84988496

0 commit comments

Comments
 (0)