]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
bpf: Move btf_resolve_size into __btf_resolve_size
authorJiri Olsa <jolsa@kernel.org>
Tue, 25 Aug 2020 19:21:13 +0000 (21:21 +0200)
committerAlexei Starovoitov <ast@kernel.org>
Tue, 25 Aug 2020 22:37:41 +0000 (15:37 -0700)
Moving btf_resolve_size into __btf_resolve_size and
keeping btf_resolve_size public with just first 3
arguments, because the rest of the arguments are not
used by outside callers.

Following changes are adding more arguments, which
are not useful to outside callers. They will be added
to the __btf_resolve_size function.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Acked-by: Andrii Nakryiko <andriin@fb.com>
Link: https://lore.kernel.org/bpf/20200825192124.710397-4-jolsa@kernel.org
include/linux/btf.h
kernel/bpf/bpf_struct_ops.c
kernel/bpf/btf.c

index 8b81fbb4497cf156bb977043a84190e0a3ef1690..a9af5e7a7ecead09ad0f4fc2b910b2669b095fbb 100644 (file)
@@ -64,8 +64,7 @@ const struct btf_type *btf_type_resolve_func_ptr(const struct btf *btf,
                                                 u32 id, u32 *res_id);
 const struct btf_type *
 btf_resolve_size(const struct btf *btf, const struct btf_type *type,
-                u32 *type_size, const struct btf_type **elem_type,
-                u32 *total_nelems);
+                u32 *type_size);
 
 #define for_each_member(i, struct_type, member)                        \
        for (i = 0, member = btf_type_member(struct_type);      \
index 969c5d47f81fed0cd2e9e275506d1beee8996cd2..4c3b543bb33b78e9df7a299a96217a468a080517 100644 (file)
@@ -298,8 +298,7 @@ static int check_zero_holes(const struct btf_type *t, void *data)
                        return -EINVAL;
 
                mtype = btf_type_by_id(btf_vmlinux, member->type);
-               mtype = btf_resolve_size(btf_vmlinux, mtype, &msize,
-                                        NULL, NULL);
+               mtype = btf_resolve_size(btf_vmlinux, mtype, &msize);
                if (IS_ERR(mtype))
                        return PTR_ERR(mtype);
                prev_mend = moff + msize;
@@ -396,8 +395,7 @@ static int bpf_struct_ops_map_update_elem(struct bpf_map *map, void *key,
                        u32 msize;
 
                        mtype = btf_type_by_id(btf_vmlinux, member->type);
-                       mtype = btf_resolve_size(btf_vmlinux, mtype, &msize,
-                                                NULL, NULL);
+                       mtype = btf_resolve_size(btf_vmlinux, mtype, &msize);
                        if (IS_ERR(mtype)) {
                                err = PTR_ERR(mtype);
                                goto reset_unlock;
index 91afdd4c82e33109f7284017bc6c3da55f6b7191..6ed4ecc60381cd676b98957be5f7be76b15a29b4 100644 (file)
@@ -1088,10 +1088,10 @@ static const struct resolve_vertex *env_stack_peak(struct btf_verifier_env *env)
  * *elem_type: same as return type ("struct X")
  * *total_nelems: 1
  */
-const struct btf_type *
-btf_resolve_size(const struct btf *btf, const struct btf_type *type,
-                u32 *type_size, const struct btf_type **elem_type,
-                u32 *total_nelems)
+static const struct btf_type *
+__btf_resolve_size(const struct btf *btf, const struct btf_type *type,
+                  u32 *type_size, const struct btf_type **elem_type,
+                  u32 *total_nelems)
 {
        const struct btf_type *array_type = NULL;
        const struct btf_array *array;
@@ -1150,6 +1150,13 @@ resolved:
        return array_type ? : type;
 }
 
+const struct btf_type *
+btf_resolve_size(const struct btf *btf, const struct btf_type *type,
+                u32 *type_size)
+{
+       return __btf_resolve_size(btf, type, type_size, NULL, NULL);
+}
+
 /* The input param "type_id" must point to a needs_resolve type */
 static const struct btf_type *btf_type_id_resolve(const struct btf *btf,
                                                  u32 *type_id)
@@ -3976,8 +3983,8 @@ error:
                mtype = btf_type_by_id(btf_vmlinux, member->type);
                mname = __btf_name_by_offset(btf_vmlinux, member->name_off);
 
-               mtype = btf_resolve_size(btf_vmlinux, mtype, &msize,
-                                        &elem_type, &total_nelems);
+               mtype = __btf_resolve_size(btf_vmlinux, mtype, &msize,
+                                          &elem_type, &total_nelems);
                if (IS_ERR(mtype)) {
                        bpf_log(log, "field %s doesn't have size\n", mname);
                        return -EFAULT;
@@ -3991,7 +3998,7 @@ error:
                if (btf_type_is_array(mtype)) {
                        u32 elem_idx;
 
-                       /* btf_resolve_size() above helps to
+                       /* __btf_resolve_size() above helps to
                         * linearize a multi-dimensional array.
                         *
                         * The logic here is treating an array