]> git.baikalelectronics.ru Git - kernel.git/commit
bpf: btf: allow typedef func_proto
authorYonghong Song <yhs@fb.com>
Wed, 30 Jan 2019 00:38:16 +0000 (16:38 -0800)
committerAlexei Starovoitov <ast@kernel.org>
Wed, 30 Jan 2019 03:15:32 +0000 (19:15 -0800)
commit4c76635d0b4ca23aa0b8a78c598687fcc3f7d5c0
tree615e00a0f12827c9b0cac76c6bf38710e1642683
parentcf37133e808728114e0d51c068110b044f56dfe1
bpf: btf: allow typedef func_proto

Current implementation does not allow typedef func_proto.
But it is actually allowed.
  -bash-4.4$ cat t.c
  typedef int (f) (int);
  f *g;
  -bash-4.4$ clang -O2 -g -c -target bpf t.c -Xclang -target-feature -Xclang +dwarfris
  -bash-4.4$ pahole -JV t.o
  File t.o:
  [1] PTR (anon) type_id=2
  [2] TYPEDEF f type_id=3
  [3] FUNC_PROTO (anon) return=4 args=(4 (anon))
  [4] INT int size=4 bit_offset=0 nr_bits=32 encoding=SIGNED
  -bash-4.4$

This patch related btf verifier to allow such (typedef func_proto)
patterns.

Fixes: 83f9d3f2320f ("bpf: btf: Add BTF_KIND_FUNC and BTF_KIND_FUNC_PROTO")
Acked-by: Martin KaFai Lau <kafai@fb.com>
Signed-off-by: Yonghong Song <yhs@fb.com>
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
kernel/bpf/btf.c