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(a)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(a)novell.com>
:::::: CC: Linus Torvalds <torvalds(a)g5.osdl.org>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation