Message ID | 20181218214358.87636-1-yhs@fb.com |
---|---|
State | Accepted, archived |
Delegated to: | BPF Maintainers |
Headers | show |
Series | [bpf-next] bpf: log struct/union attribute for forward type | expand |
On 12/18/2018 10:43 PM, Yonghong Song wrote: > Current btf internal verbose logger logs fwd type as > [2] FWD A type_id=0 > where A is the type name. > > Commit 9d5f9f701b18 ("bpf: btf: fix struct/union/fwd types > with kind_flag") introduced kind_flag which can be used > to distinguish whether a forward type is a struct or > union. > > Also, "type_id=0" does not carry any meaningful > information for fwd type as btf_type.type = 0 is simply > enforced during btf verification and is not used > anywhere else. > > This commit changed the log to > [2] FWD A struct > if kind_flag = 0, or > [2] FWD A union > if kind_flag = 1. > > Acked-by: Martin KaFai Lau <kafai@fb.com> > Signed-off-by: Yonghong Song <yhs@fb.com> Applied, thanks!
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c index e804b26a0506..715f9fcf4712 100644 --- a/kernel/bpf/btf.c +++ b/kernel/bpf/btf.c @@ -1595,12 +1595,18 @@ static s32 btf_fwd_check_meta(struct btf_verifier_env *env, return 0; } +static void btf_fwd_type_log(struct btf_verifier_env *env, + const struct btf_type *t) +{ + btf_verifier_log(env, "%s", btf_type_kflag(t) ? "union" : "struct"); +} + static struct btf_kind_operations fwd_ops = { .check_meta = btf_fwd_check_meta, .resolve = btf_df_resolve, .check_member = btf_df_check_member, .check_kflag_member = btf_df_check_kflag_member, - .log_details = btf_ref_type_log, + .log_details = btf_fwd_type_log, .seq_show = btf_df_seq_show, };