aboutsummaryrefslogtreecommitdiff
path: root/kernel/bpf/btf.c
diff options
context:
space:
mode:
authorGravatar Stanislav Fomichev <sdf@google.com> 2023-06-26 14:25:21 -0700
committerGravatar Daniel Borkmann <daniel@iogearbox.net> 2023-06-30 10:35:59 +0200
commit819d43428a8661abccf8b9ecad94c7e6f23a0024 (patch)
tree04eab9f1dee7b6f4134a5b8b71dbfe7e6bb0c6ae /kernel/bpf/btf.c
parentselftests/bpf: Fix bpf_nf failure upon test rerun (diff)
downloadlinux-819d43428a8661abccf8b9ecad94c7e6f23a0024.tar.gz
linux-819d43428a8661abccf8b9ecad94c7e6f23a0024.tar.bz2
linux-819d43428a8661abccf8b9ecad94c7e6f23a0024.zip
bpf: Resolve modifiers when walking structs
It is impossible to use skb_frag_t in the tracing program. Resolve typedefs when walking structs. Signed-off-by: Stanislav Fomichev <sdf@google.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Yonghong Song <yhs@fb.com> Link: https://lore.kernel.org/bpf/20230626212522.2414485-1-sdf@google.com
Diffstat (limited to 'kernel/bpf/btf.c')
-rw-r--r--kernel/bpf/btf.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/bpf/btf.c b/kernel/bpf/btf.c
index 29fe21099298..3dd47451f097 100644
--- a/kernel/bpf/btf.c
+++ b/kernel/bpf/btf.c
@@ -6135,6 +6135,8 @@ static int btf_struct_walk(struct bpf_verifier_log *log, const struct btf *btf,
*flag = 0;
again:
+ if (btf_type_is_modifier(t))
+ t = btf_type_skip_modifiers(btf, t->type, NULL);
tname = __btf_name_by_offset(btf, t->name_off);
if (!btf_type_is_struct(t)) {
bpf_log(log, "Type '%s' is not a struct\n", tname);