OSDN Git Service

bpf: move kfunc_call_arg_meta higher in the file
authorAndrii Nakryiko <andrii@kernel.org>
Thu, 2 Mar 2023 23:50:07 +0000 (15:50 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Sat, 4 Mar 2023 19:14:32 +0000 (11:14 -0800)
Move struct bpf_kfunc_call_arg_meta higher in the file and put it next
to struct bpf_call_arg_meta, so it can be used from more functions.

Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
Link: https://lore.kernel.org/r/20230302235015.2044271-10-andrii@kernel.org
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/verifier.c

index db0c37e..ed9a96a 100644 (file)
@@ -270,6 +270,41 @@ struct bpf_call_arg_meta {
        struct btf_field *kptr_field;
 };
 
+struct bpf_kfunc_call_arg_meta {
+       /* In parameters */
+       struct btf *btf;
+       u32 func_id;
+       u32 kfunc_flags;
+       const struct btf_type *func_proto;
+       const char *func_name;
+       /* Out parameters */
+       u32 ref_obj_id;
+       u8 release_regno;
+       bool r0_rdonly;
+       u32 ret_btf_id;
+       u64 r0_size;
+       u32 subprogno;
+       struct {
+               u64 value;
+               bool found;
+       } arg_constant;
+       struct {
+               struct btf *btf;
+               u32 btf_id;
+       } arg_obj_drop;
+       struct {
+               struct btf_field *field;
+       } arg_list_head;
+       struct {
+               struct btf_field *field;
+       } arg_rbtree_root;
+       struct {
+               enum bpf_dynptr_type type;
+               u32 id;
+       } initialized_dynptr;
+       u64 mem_size;
+};
+
 struct btf *btf_vmlinux;
 
 static DEFINE_MUTEX(bpf_verifier_lock);
@@ -8811,41 +8846,6 @@ static void mark_btf_func_reg_size(struct bpf_verifier_env *env, u32 regno,
        }
 }
 
-struct bpf_kfunc_call_arg_meta {
-       /* In parameters */
-       struct btf *btf;
-       u32 func_id;
-       u32 kfunc_flags;
-       const struct btf_type *func_proto;
-       const char *func_name;
-       /* Out parameters */
-       u32 ref_obj_id;
-       u8 release_regno;
-       bool r0_rdonly;
-       u32 ret_btf_id;
-       u64 r0_size;
-       u32 subprogno;
-       struct {
-               u64 value;
-               bool found;
-       } arg_constant;
-       struct {
-               struct btf *btf;
-               u32 btf_id;
-       } arg_obj_drop;
-       struct {
-               struct btf_field *field;
-       } arg_list_head;
-       struct {
-               struct btf_field *field;
-       } arg_rbtree_root;
-       struct {
-               enum bpf_dynptr_type type;
-               u32 id;
-       } initialized_dynptr;
-       u64 mem_size;
-};
-
 static bool is_kfunc_acquire(struct bpf_kfunc_call_arg_meta *meta)
 {
        return meta->kfunc_flags & KF_ACQUIRE;