[PATCH bpf-next v4 2/4] libbpf: Init fd_array when prog probe load
From: Tao Chen
Date: Thu Feb 06 2025 - 00:18:50 EST
fd_array used to store module btf fd, which will
be used for kfunc probe in module btf.
Signed-off-by: Tao Chen <chen.dylane@xxxxxxxxx>
---
tools/lib/bpf/libbpf_probes.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/tools/lib/bpf/libbpf_probes.c b/tools/lib/bpf/libbpf_probes.c
index aeb4fd97d801..e142130cb83c 100644
--- a/tools/lib/bpf/libbpf_probes.c
+++ b/tools/lib/bpf/libbpf_probes.c
@@ -102,12 +102,15 @@ __u32 get_kernel_version(void)
static int probe_prog_load(enum bpf_prog_type prog_type,
const struct bpf_insn *insns, size_t insns_cnt,
+ int *fd_array, size_t fd_array_cnt,
char *log_buf, size_t log_buf_sz)
{
LIBBPF_OPTS(bpf_prog_load_opts, opts,
.log_buf = log_buf,
.log_size = log_buf_sz,
.log_level = log_buf ? 1 : 0,
+ .fd_array = fd_array,
+ .fd_array_cnt = fd_array_cnt,
);
int fd, err, exp_err = 0;
const char *exp_msg = NULL;
@@ -214,7 +217,7 @@ int libbpf_probe_bpf_prog_type(enum bpf_prog_type prog_type, const void *opts)
if (opts)
return libbpf_err(-EINVAL);
- ret = probe_prog_load(prog_type, insns, insn_cnt, NULL, 0);
+ ret = probe_prog_load(prog_type, insns, insn_cnt, NULL, 0, NULL, 0);
return libbpf_err(ret);
}
@@ -448,7 +451,7 @@ int libbpf_probe_bpf_helper(enum bpf_prog_type prog_type, enum bpf_func_id helpe
return -EOPNOTSUPP;
buf[0] = '\0';
- ret = probe_prog_load(prog_type, insns, insn_cnt, buf, sizeof(buf));
+ ret = probe_prog_load(prog_type, insns, insn_cnt, NULL, 0, buf, sizeof(buf));
if (ret < 0)
return libbpf_err(ret);
--
2.43.0