All of lore.kernel.org
 help / color / mirror / Atom feed
* [ast:bpf_tramp 20/20] include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
@ 2019-11-12 22:45 kbuild test robot
  0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2019-11-12 22:45 UTC (permalink / raw)
  To: kbuild-all

[-- Attachment #1: Type: text/plain, Size: 43998 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/ast/bpf.git bpf_tramp
head:   eb9b9dcbc8ed96e479f5d62aa97c0c2c4b23beeb
commit: eb9b9dcbc8ed96e479f5d62aa97c0c2c4b23beeb [20/20] bpf: annotate context types
config: x86_64-randconfig-s0-201945 (attached as .config)
compiler: gcc-4.9 (Debian 4.9.2-10+deb8u1) 4.9.2
reproduce:
        git checkout eb9b9dcbc8ed96e479f5d62aa97c0c2c4b23beeb
        # save the attached .config to linux build tree
        make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All errors (new ones prefixed by >>):

    BPF_CALL_5(sk_reuseport_load_bytes_relative,
    ^
   net/core/filter.c: In function 'sk_reuseport_load_bytes_relative':
   include/linux/filter.h:453:2: warning: passing argument 1 of '(u64 (*)(const struct sk_reuseport_kern *, u32,  void *, u32,  u32))&____sk_reuseport_load_bytes_relative' from incompatible pointer type
     (__force t)              \
     ^
   include/linux/filter.h:440:38: note: in expansion of macro '__BPF_CAST'
    #define __BPF_MAP_5(m, v, t, a, ...) m(t, a), __BPF_MAP_4(m, v, __VA_ARGS__)
                                         ^
   include/linux/filter.h:449:27: note: in expansion of macro '__BPF_MAP_5'
    #define __BPF_MAP(n, ...) __BPF_MAP_##n(__VA_ARGS__)
                              ^
   include/linux/filter.h:474:35: note: in expansion of macro '__BPF_MAP'
      return ((btf_##name)____##name)(__BPF_MAP(x,__BPF_CAST,__BPF_N,__VA_ARGS__));\
                                      ^
   include/linux/filter.h:484:31: note: in expansion of macro 'BPF_CALL_x'
    #define BPF_CALL_5(name, ...) BPF_CALL_x(5, name, __VA_ARGS__)
                                  ^
   net/core/filter.c:8790:1: note: in expansion of macro 'BPF_CALL_5'
    BPF_CALL_5(sk_reuseport_load_bytes_relative,
    ^
   include/linux/filter.h:453:2: note: expected 'const struct sk_reuseport_kern *' but argument is of type 'const struct sk_reuseport_kern *'
     (__force t)              \
     ^
   include/linux/filter.h:440:38: note: in expansion of macro '__BPF_CAST'
    #define __BPF_MAP_5(m, v, t, a, ...) m(t, a), __BPF_MAP_4(m, v, __VA_ARGS__)
                                         ^
   include/linux/filter.h:449:27: note: in expansion of macro '__BPF_MAP_5'
    #define __BPF_MAP(n, ...) __BPF_MAP_##n(__VA_ARGS__)
                              ^
   include/linux/filter.h:474:35: note: in expansion of macro '__BPF_MAP'
      return ((btf_##name)____##name)(__BPF_MAP(x,__BPF_CAST,__BPF_N,__VA_ARGS__));\
                                      ^
   include/linux/filter.h:484:31: note: in expansion of macro 'BPF_CALL_x'
    #define BPF_CALL_5(name, ...) BPF_CALL_x(5, name, __VA_ARGS__)
                                  ^
   net/core/filter.c:8790:1: note: in expansion of macro 'BPF_CALL_5'
    BPF_CALL_5(sk_reuseport_load_bytes_relative,
    ^
   include/linux/filter.h:474:10: warning: function called through a non-compatible type
      return ((btf_##name)____##name)(__BPF_MAP(x,__BPF_CAST,__BPF_N,__VA_ARGS__));\
             ^
   include/linux/filter.h:484:31: note: in expansion of macro 'BPF_CALL_x'
    #define BPF_CALL_5(name, ...) BPF_CALL_x(5, name, __VA_ARGS__)
                                  ^
   net/core/filter.c:8790:1: note: in expansion of macro 'BPF_CALL_5'
    BPF_CALL_5(sk_reuseport_load_bytes_relative,
    ^
   net/core/filter.c: At top level:
   net/core/filter.c:8791:18: warning: 'struct sk_reuseport_kern' declared inside parameter list
        const struct sk_reuseport_kern *, reuse_kern, u32, offset,
                     ^
   include/linux/filter.h:460:31: note: in definition of macro '__BPF_DECL_ARGS'
    #define __BPF_DECL_ARGS(t, a) t   a
                                  ^
   include/linux/filter.h:449:27: note: in expansion of macro '__BPF_MAP_5'
    #define __BPF_MAP(n, ...) __BPF_MAP_##n(__VA_ARGS__)
                              ^
   include/linux/filter.h:477:17: note: in expansion of macro '__BPF_MAP'
     u64 ____##name(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARGS__))
                    ^
   include/linux/filter.h:484:31: note: in expansion of macro 'BPF_CALL_x'
    #define BPF_CALL_5(name, ...) BPF_CALL_x(5, name, __VA_ARGS__)
                                  ^
   net/core/filter.c:8790:1: note: in expansion of macro 'BPF_CALL_5'
    BPF_CALL_5(sk_reuseport_load_bytes_relative,
    ^
   include/linux/filter.h:477:6: error: conflicting types for '____sk_reuseport_load_bytes_relative'
     u64 ____##name(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARGS__))
         ^
   include/linux/filter.h:484:31: note: in expansion of macro 'BPF_CALL_x'
    #define BPF_CALL_5(name, ...) BPF_CALL_x(5, name, __VA_ARGS__)
                                  ^
   net/core/filter.c:8790:1: note: in expansion of macro 'BPF_CALL_5'
    BPF_CALL_5(sk_reuseport_load_bytes_relative,
    ^
   include/linux/filter.h:469:6: note: previous declaration of '____sk_reuseport_load_bytes_relative' was here
     u64 ____##name(__BPF_MAP(x, __BPF_DECL_ARGS, __BPF_V, __VA_ARGS__));   \
         ^
   include/linux/filter.h:484:31: note: in expansion of macro 'BPF_CALL_x'
    #define BPF_CALL_5(name, ...) BPF_CALL_x(5, name, __VA_ARGS__)
                                  ^
   net/core/filter.c:8790:1: note: in expansion of macro 'BPF_CALL_5'
    BPF_CALL_5(sk_reuseport_load_bytes_relative,
    ^
   net/core/filter.c: In function '____sk_reuseport_load_bytes_relative':
   net/core/filter.c:8794:51: error: dereferencing pointer to incomplete type
     return ____bpf_skb_load_bytes_relative(reuse_kern->skb, offset, to,
                                                      ^
   In file included from include/uapi/linux/bpf.h:12:0,
                    from include/linux/bpf.h:7,
                    from include/linux/bpf-cgroup.h:5,
                    from include/linux/cgroup-defs.h:22,
                    from include/linux/cgroup.h:28,
                    from include/net/netprio_cgroup.h:11,
                    from include/linux/netdevice.h:42,
                    from include/net/sock.h:46,
                    from include/linux/sock_diag.h:8,
                    from net/core/filter.c:25:
   net/core/filter.c: In function 'sk_reuseport_convert_ctx_access':
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8895:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(data);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8895:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(data);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8895:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(data);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8895:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(data);
      ^
   In file included from include/net/sock.h:59:0,
                    from include/linux/sock_diag.h:8,
                    from net/core/filter.c:25:
   net/core/filter.c:8874:37: error: invalid use of undefined type 'struct sk_reuseport_kern'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
                                        ^
   include/linux/filter.h:248:12: note: in definition of macro 'BPF_LDX_MEM'
      .off   = OFF,     \
               ^
   include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
    #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
                                   ^
   net/core/filter.c:7838:24: note: in expansion of macro 'offsetof'
              si->src_reg, offsetof(S, F));        \
                           ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8895:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(data);
      ^
   In file included from include/uapi/linux/bpf.h:12:0,
                    from include/linux/bpf.h:7,
                    from include/linux/bpf-cgroup.h:5,
                    from include/linux/cgroup-defs.h:22,
                    from include/linux/cgroup.h:28,
                    from include/net/netprio_cgroup.h:11,
                    from include/linux/netdevice.h:42,
                    from include/net/sock.h:46,
                    from include/linux/sock_diag.h:8,
                    from net/core/filter.c:25:
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8899:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(len);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8899:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(len);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8899:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(len);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8899:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(len);
      ^
   In file included from include/net/sock.h:59:0,
                    from include/linux/sock_diag.h:8,
                    from net/core/filter.c:25:
   net/core/filter.c:8874:37: error: invalid use of undefined type 'struct sk_reuseport_kern'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
                                        ^
   include/linux/filter.h:248:12: note: in definition of macro 'BPF_LDX_MEM'
      .off   = OFF,     \
               ^
   include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
    #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
                                   ^
   net/core/filter.c:7838:24: note: in expansion of macro 'offsetof'
              si->src_reg, offsetof(S, F));        \
                           ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8899:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(len);
      ^
   In file included from include/uapi/linux/bpf.h:12:0,
                    from include/linux/bpf.h:7,
                    from include/linux/bpf-cgroup.h:5,
                    from include/linux/cgroup-defs.h:22,
                    from include/linux/cgroup.h:28,
                    from include/net/netprio_cgroup.h:11,
                    from include/linux/netdevice.h:42,
                    from include/net/sock.h:46,
                    from include/linux/sock_diag.h:8,
                    from net/core/filter.c:25:
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8903:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(protocol);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8903:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(protocol);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8903:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(protocol);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8903:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(protocol);
      ^
   In file included from include/net/sock.h:59:0,
                    from include/linux/sock_diag.h:8,
                    from net/core/filter.c:25:
   net/core/filter.c:8874:37: error: invalid use of undefined type 'struct sk_reuseport_kern'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
                                        ^
   include/linux/filter.h:248:12: note: in definition of macro 'BPF_LDX_MEM'
      .off   = OFF,     \
               ^
   include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
    #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
                                   ^
   net/core/filter.c:7838:24: note: in expansion of macro 'offsetof'
              si->src_reg, offsetof(S, F));        \
                           ^
   net/core/filter.c:7847:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(S, NS, F, NF,         \
     ^
   net/core/filter.c:8874:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD'
     SOCK_ADDR_LOAD_NESTED_FIELD(struct sk_reuseport_kern,  \
     ^
   net/core/filter.c:8903:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SKB_FIELD'
      SK_REUSEPORT_LOAD_SKB_FIELD(protocol);
      ^
   In file included from include/uapi/linux/bpf.h:12:0,
                    from include/linux/bpf.h:7,
                    from include/linux/bpf-cgroup.h:5,
                    from include/linux/cgroup-defs.h:22,
                    from include/linux/cgroup.h:28,
                    from include/net/netprio_cgroup.h:11,
                    from include/linux/netdevice.h:42,
                    from include/net/sock.h:46,
                    from include/linux/sock_diag.h:8,
                    from net/core/filter.c:25:
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:8880:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(struct sk_reuseport_kern, \
     ^
   net/core/filter.c:8908:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SK_FIELD_SIZE_OFF'
      SK_REUSEPORT_LOAD_SK_FIELD_SIZE_OFF(__sk_flags_offset,
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:8880:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(struct sk_reuseport_kern, \
     ^
   net/core/filter.c:8908:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SK_FIELD_SIZE_OFF'
      SK_REUSEPORT_LOAD_SK_FIELD_SIZE_OFF(__sk_flags_offset,
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:8880:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(struct sk_reuseport_kern, \
     ^
   net/core/filter.c:8908:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SK_FIELD_SIZE_OFF'
      SK_REUSEPORT_LOAD_SK_FIELD_SIZE_OFF(__sk_flags_offset,
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:7837:13: note: in expansion of macro 'BPF_LDX_MEM'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:7837:25: note: in expansion of macro 'BPF_FIELD_SIZEOF'
      *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(S, F), si->dst_reg,     \
                            ^
   net/core/filter.c:8880:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(struct sk_reuseport_kern, \
     ^
   net/core/filter.c:8908:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SK_FIELD_SIZE_OFF'
      SK_REUSEPORT_LOAD_SK_FIELD_SIZE_OFF(__sk_flags_offset,
      ^
   In file included from include/net/sock.h:59:0,
                    from include/linux/sock_diag.h:8,
                    from net/core/filter.c:25:
   net/core/filter.c:8880:46: error: invalid use of undefined type 'struct sk_reuseport_kern'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(struct sk_reuseport_kern, \
                                                 ^
   include/linux/filter.h:248:12: note: in definition of macro 'BPF_LDX_MEM'
      .off   = OFF,     \
               ^
   include/linux/stddef.h:17:32: note: in expansion of macro '__compiler_offsetof'
    #define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
                                   ^
   net/core/filter.c:7838:24: note: in expansion of macro 'offsetof'
              si->src_reg, offsetof(S, F));        \
                           ^
   net/core/filter.c:8880:2: note: in expansion of macro 'SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF'
     SOCK_ADDR_LOAD_NESTED_FIELD_SIZE_OFF(struct sk_reuseport_kern, \
     ^
   net/core/filter.c:8908:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_SK_FIELD_SIZE_OFF'
      SK_REUSEPORT_LOAD_SK_FIELD_SIZE_OFF(__sk_flags_offset,
      ^
   In file included from include/uapi/linux/bpf.h:12:0,
                    from include/linux/bpf.h:7,
                    from include/linux/bpf-cgroup.h:5,
                    from include/linux/cgroup-defs.h:22,
                    from include/linux/cgroup.h:28,
                    from include/net/netprio_cgroup.h:11,
                    from include/linux/netdevice.h:42,
                    from include/net/sock.h:46,
                    from include/linux/sock_diag.h:8,
                    from net/core/filter.c:25:
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:8866:12: note: in expansion of macro 'BPF_LDX_MEM'
     *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_reuseport_kern, F), \
               ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:8866:24: note: in expansion of macro 'BPF_FIELD_SIZEOF'
     *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_reuseport_kern, F), \
                           ^
   net/core/filter.c:8920:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_FIELD'
      SK_REUSEPORT_LOAD_FIELD(data_end);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:8866:12: note: in expansion of macro 'BPF_LDX_MEM'
     *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_reuseport_kern, F), \
               ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:8866:24: note: in expansion of macro 'BPF_FIELD_SIZEOF'
     *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_reuseport_kern, F), \
                           ^
   net/core/filter.c:8920:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_FIELD'
      SK_REUSEPORT_LOAD_FIELD(data_end);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:8866:12: note: in expansion of macro 'BPF_LDX_MEM'
     *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_reuseport_kern, F), \
               ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:8866:24: note: in expansion of macro 'BPF_FIELD_SIZEOF'
     *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_reuseport_kern, F), \
                           ^
   net/core/filter.c:8920:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_FIELD'
      SK_REUSEPORT_LOAD_FIELD(data_end);
      ^
>> include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type
    #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
                                              ^
   include/uapi/linux/bpf_common.h:17:27: note: in definition of macro 'BPF_SIZE'
    #define BPF_SIZE(code)  ((code) & 0x18)
                              ^
   net/core/filter.c:8866:12: note: in expansion of macro 'BPF_LDX_MEM'
     *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_reuseport_kern, F), \
               ^
   include/linux/filter.h:423:22: note: in expansion of macro 'bytes_to_bpf_size'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                         ^
   include/linux/filter.h:423:40: note: in expansion of macro 'FIELD_SIZEOF'
      const int __size = bytes_to_bpf_size(FIELD_SIZEOF(type, field)); \
                                           ^
   net/core/filter.c:8866:24: note: in expansion of macro 'BPF_FIELD_SIZEOF'
     *insn++ = BPF_LDX_MEM(BPF_FIELD_SIZEOF(struct sk_reuseport_kern, F), \
                           ^
   net/core/filter.c:8920:3: note: in expansion of macro 'SK_REUSEPORT_LOAD_FIELD'
      SK_REUSEPORT_LOAD_FIELD(data_end);
      ^
   In file included from include/net/sock.h:59:0,
                    from include/linux/sock_diag.h:8,
                    from net/core/filter.c:25:
..

vim +89 include/linux/kernel.h

9b3be9f99203d9 Yinghai Lu   2010-02-10  81  
e8c97af0c1f23d Randy Dunlap 2017-10-13  82  /**
e8c97af0c1f23d Randy Dunlap 2017-10-13  83   * FIELD_SIZEOF - get the size of a struct's field
e8c97af0c1f23d Randy Dunlap 2017-10-13  84   * @t: the target struct
e8c97af0c1f23d Randy Dunlap 2017-10-13  85   * @f: the target struct's field
e8c97af0c1f23d Randy Dunlap 2017-10-13  86   * Return: the size of @f in the struct definition without having a
e8c97af0c1f23d Randy Dunlap 2017-10-13  87   * declared instance of @t.
e8c97af0c1f23d Randy Dunlap 2017-10-13  88   */
4552d5dc08b798 Jan Beulich  2006-06-26 @89  #define FIELD_SIZEOF(t, f) (sizeof(((t*)0)->f))
e8c97af0c1f23d Randy Dunlap 2017-10-13  90  

:::::: The code at line 89 was first introduced by commit
:::::: 4552d5dc08b79868829b4be8951b29b07284753f [PATCH] x86_64: reliable stack trace support

:::::: TO: Jan Beulich <jbeulich@novell.com>
:::::: CC: Linus Torvalds <torvalds@g5.osdl.org>

---
0-DAY kernel test infrastructure                 Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org Intel Corporation

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 30211 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-11-12 22:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-12 22:45 [ast:bpf_tramp 20/20] include/linux/kernel.h:89:43: error: dereferencing pointer to incomplete type kbuild test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.