libbpf: Use bpf_{btf,link,map,prog}_get_info_by_fd()

Use the new type-safe wrappers around bpf_obj_get_info_by_fd().

Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/bpf/20230214231221.249277-3-iii@linux.ibm.com
This commit is contained in:
Ilya Leoshkevich
2023-02-15 00:12:15 +01:00
committed by Andrii Nakryiko
parent 55a9ed0e16
commit 629dfc660c
4 changed files with 14 additions and 14 deletions

View File

@ -1350,9 +1350,9 @@ struct btf *btf_get_from_fd(int btf_fd, struct btf *base_btf)
void *ptr; void *ptr;
int err; int err;
/* we won't know btf_size until we call bpf_obj_get_info_by_fd(). so /* we won't know btf_size until we call bpf_btf_get_info_by_fd(). so
* let's start with a sane default - 4KiB here - and resize it only if * let's start with a sane default - 4KiB here - and resize it only if
* bpf_obj_get_info_by_fd() needs a bigger buffer. * bpf_btf_get_info_by_fd() needs a bigger buffer.
*/ */
last_size = 4096; last_size = 4096;
ptr = malloc(last_size); ptr = malloc(last_size);
@ -1362,7 +1362,7 @@ struct btf *btf_get_from_fd(int btf_fd, struct btf *base_btf)
memset(&btf_info, 0, sizeof(btf_info)); memset(&btf_info, 0, sizeof(btf_info));
btf_info.btf = ptr_to_u64(ptr); btf_info.btf = ptr_to_u64(ptr);
btf_info.btf_size = last_size; btf_info.btf_size = last_size;
err = bpf_obj_get_info_by_fd(btf_fd, &btf_info, &len); err = bpf_btf_get_info_by_fd(btf_fd, &btf_info, &len);
if (!err && btf_info.btf_size > last_size) { if (!err && btf_info.btf_size > last_size) {
void *temp_ptr; void *temp_ptr;
@ -1380,7 +1380,7 @@ struct btf *btf_get_from_fd(int btf_fd, struct btf *base_btf)
btf_info.btf = ptr_to_u64(ptr); btf_info.btf = ptr_to_u64(ptr);
btf_info.btf_size = last_size; btf_info.btf_size = last_size;
err = bpf_obj_get_info_by_fd(btf_fd, &btf_info, &len); err = bpf_btf_get_info_by_fd(btf_fd, &btf_info, &len);
} }
if (err || btf_info.btf_size > last_size) { if (err || btf_info.btf_size > last_size) {

View File

@ -4345,7 +4345,7 @@ int bpf_map__reuse_fd(struct bpf_map *map, int fd)
char *new_name; char *new_name;
memset(&info, 0, len); memset(&info, 0, len);
err = bpf_obj_get_info_by_fd(fd, &info, &len); err = bpf_map_get_info_by_fd(fd, &info, &len);
if (err && errno == EINVAL) if (err && errno == EINVAL)
err = bpf_get_map_info_from_fdinfo(fd, &info); err = bpf_get_map_info_from_fdinfo(fd, &info);
if (err) if (err)
@ -4729,7 +4729,7 @@ static int probe_module_btf(void)
* kernel's module BTF support coincides with support for * kernel's module BTF support coincides with support for
* name/name_len fields in struct bpf_btf_info. * name/name_len fields in struct bpf_btf_info.
*/ */
err = bpf_obj_get_info_by_fd(fd, &info, &len); err = bpf_btf_get_info_by_fd(fd, &info, &len);
close(fd); close(fd);
return !err; return !err;
} }
@ -4892,7 +4892,7 @@ static bool map_is_reuse_compat(const struct bpf_map *map, int map_fd)
int err; int err;
memset(&map_info, 0, map_info_len); memset(&map_info, 0, map_info_len);
err = bpf_obj_get_info_by_fd(map_fd, &map_info, &map_info_len); err = bpf_map_get_info_by_fd(map_fd, &map_info, &map_info_len);
if (err && errno == EINVAL) if (err && errno == EINVAL)
err = bpf_get_map_info_from_fdinfo(map_fd, &map_info); err = bpf_get_map_info_from_fdinfo(map_fd, &map_info);
if (err) { if (err) {
@ -5437,7 +5437,7 @@ static int load_module_btfs(struct bpf_object *obj)
info.name = ptr_to_u64(name); info.name = ptr_to_u64(name);
info.name_len = sizeof(name); info.name_len = sizeof(name);
err = bpf_obj_get_info_by_fd(fd, &info, &len); err = bpf_btf_get_info_by_fd(fd, &info, &len);
if (err) { if (err) {
err = -errno; err = -errno;
pr_warn("failed to get BTF object #%d info: %d\n", id, err); pr_warn("failed to get BTF object #%d info: %d\n", id, err);
@ -9030,9 +9030,9 @@ static int libbpf_find_prog_btf_id(const char *name, __u32 attach_prog_fd)
int err; int err;
memset(&info, 0, info_len); memset(&info, 0, info_len);
err = bpf_obj_get_info_by_fd(attach_prog_fd, &info, &info_len); err = bpf_prog_get_info_by_fd(attach_prog_fd, &info, &info_len);
if (err) { if (err) {
pr_warn("failed bpf_obj_get_info_by_fd for FD %d: %d\n", pr_warn("failed bpf_prog_get_info_by_fd for FD %d: %d\n",
attach_prog_fd, err); attach_prog_fd, err);
return err; return err;
} }
@ -11741,7 +11741,7 @@ static struct perf_buffer *__perf_buffer__new(int map_fd, size_t page_cnt,
/* best-effort sanity checks */ /* best-effort sanity checks */
memset(&map, 0, sizeof(map)); memset(&map, 0, sizeof(map));
map_info_len = sizeof(map); map_info_len = sizeof(map);
err = bpf_obj_get_info_by_fd(map_fd, &map, &map_info_len); err = bpf_map_get_info_by_fd(map_fd, &map, &map_info_len);
if (err) { if (err) {
err = -errno; err = -errno;
/* if BPF_OBJ_GET_INFO_BY_FD is supported, will return /* if BPF_OBJ_GET_INFO_BY_FD is supported, will return

View File

@ -689,7 +689,7 @@ static int tc_add_fd_and_name(struct libbpf_nla_req *req, int fd)
int len, ret; int len, ret;
memset(&info, 0, info_len); memset(&info, 0, info_len);
ret = bpf_obj_get_info_by_fd(fd, &info, &info_len); ret = bpf_prog_get_info_by_fd(fd, &info, &info_len);
if (ret < 0) if (ret < 0)
return ret; return ret;

View File

@ -83,7 +83,7 @@ int ring_buffer__add(struct ring_buffer *rb, int map_fd,
memset(&info, 0, sizeof(info)); memset(&info, 0, sizeof(info));
err = bpf_obj_get_info_by_fd(map_fd, &info, &len); err = bpf_map_get_info_by_fd(map_fd, &info, &len);
if (err) { if (err) {
err = -errno; err = -errno;
pr_warn("ringbuf: failed to get map info for fd=%d: %d\n", pr_warn("ringbuf: failed to get map info for fd=%d: %d\n",
@ -359,7 +359,7 @@ static int user_ringbuf_map(struct user_ring_buffer *rb, int map_fd)
memset(&info, 0, sizeof(info)); memset(&info, 0, sizeof(info));
err = bpf_obj_get_info_by_fd(map_fd, &info, &len); err = bpf_map_get_info_by_fd(map_fd, &info, &len);
if (err) { if (err) {
err = -errno; err = -errno;
pr_warn("user ringbuf: failed to get map info for fd=%d: %d\n", map_fd, err); pr_warn("user ringbuf: failed to get map info for fd=%d: %d\n", map_fd, err);