diff options
| author | Alexei Starovoitov <ast@kernel.org> | 2019-01-29 19:15:33 -0800 |
|---|---|---|
| committer | Alexei Starovoitov <ast@kernel.org> | 2019-01-29 19:15:33 -0800 |
| commit | 9d90436ece8f2c5b4da617e679590137e54ce4cb (patch) | |
| tree | f21966790bed9858ec536873dcb8e52634ba1de3 /kernel | |
| parent | 2fa53f8924223e81cd85e19f0c2caf110f086752 (diff) | |
| parent | 32b750b925040565bbeff1fe2f7510e3dc71ce2e (diff) | |
Merge branch 'typedef-func_proto'
Yonghong Song says:
====================
The current btf implementation disallows the typedef of
a func_proto type. This actually is allowed per C standard.
This patch fixed btf verification to permit such types.
Patch #1 fixed the kernel side and Patch #2 fixed
the tools test_btf test.
====================
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
Diffstat (limited to 'kernel')
| -rw-r--r-- | kernel/bpf/btf.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c index befe570be5ba..c57bd10340ed 100644 --- a/kernel/bpf/btf.c +++ b/kernel/bpf/btf.c @@ -1459,7 +1459,8 @@ static int btf_modifier_resolve(struct btf_verifier_env *env, /* "typedef void new_void", "const void"...etc */ if (!btf_type_is_void(next_type) && - !btf_type_is_fwd(next_type)) { + !btf_type_is_fwd(next_type) && + !btf_type_is_func_proto(next_type)) { btf_verifier_log_type(env, v->t, "Invalid type_id"); return -EINVAL; } |
