• Yonghong Song's avatar
    bpf: btf: allow typedef func_proto · 81f5c6f5
    Yonghong Song authored
    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: 2667a262 ("bpf: btf: Add BTF_KIND_FUNC and BTF_KIND_FUNC_PROTO")
    Acked-by: default avatarMartin KaFai Lau <kafai@fb.com>
    Signed-off-by: default avatarYonghong Song <yhs@fb.com>
    Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
    81f5c6f5
btf.c 74.8 KB