Hi Hou,
[FYI, it's a private test report for your RFC patch.]
[auto build test ERROR on bpf/master]
[also build test ERROR on v5.15-rc1 next-20210915]
[cannot apply to bpf-next/master]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch]
url:
https://github.com/0day-ci/linux/commits/Hou-Tao/introduce-dummy-BPF-STRU...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf.git master
config: i386-buildonly-randconfig-r004-20210916 (attached as .config)
compiler: clang version 14.0.0 (
https://github.com/llvm/llvm-project
8cbbd7e0b2aa21ce7e416cfb63d9965518948c35)
reproduce (this is a W=1 build):
wget
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O
~/bin/make.cross
chmod +x ~/bin/make.cross
#
https://github.com/0day-ci/linux/commit/3eeddb24d6b805983fd6147abf5bcaa65...
git remote add linux-review
https://github.com/0day-ci/linux
git fetch --no-tags linux-review
Hou-Tao/introduce-dummy-BPF-STRUCT_OPS/20210915-112614
git checkout 3eeddb24d6b805983fd6147abf5bcaa65091ab2b
# save the attached .config to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir
ARCH=i386 SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from kernel/bpf/bpf_dummy_struct_ops.c:10:
> include/linux/bpf_dummy_ops.h:23:24: error: unexpected character
<U+FF1B>
struct bpf_dummy_ops {};
^~
> include/linux/bpf_dummy_ops.h:24:15: error: cannot combine with
previous 'struct' declaration specifier
static inline struct
bpf_dummy_ops *bpf_get_dummy_ops(void) { return NULL; }
^
kernel/bpf/bpf_dummy_struct_ops.c:17:23: error: redefinition of
'bpf_get_dummy_ops'
struct bpf_dummy_ops *bpf_get_dummy_ops(void)
^
include/linux/bpf_dummy_ops.h:24:37: note: previous definition is here
static inline struct bpf_dummy_ops *bpf_get_dummy_ops(void) { return NULL; }
^
> kernel/bpf/bpf_dummy_struct_ops.c:23:43: error: no member named
'owner' in 'struct bpf_dummy_ops'
if (ops &&
!bpf_try_module_get(ops, ops->owner))
~~~ ^
kernel/bpf/bpf_dummy_struct_ops.c:31:6: error: redefinition of
'bpf_put_dummy_ops'
void bpf_put_dummy_ops(struct bpf_dummy_ops *ops)
^
include/linux/bpf_dummy_ops.h:25:20: note: previous definition is here
static inline void bpf_put_dummy_ops(struct bpf_dummy_ops *ops) {}
^
kernel/bpf/bpf_dummy_struct_ops.c:33:27: error: no member named 'owner' in
'struct bpf_dummy_ops'
bpf_module_put(ops, ops->owner);
~~~ ^
> kernel/bpf/bpf_dummy_struct_ops.c:97:7: error: offsetof of
incomplete type 'struct bpf_dummy_ops_state'
case offsetof(struct
bpf_dummy_ops_state, val):
^ ~~~~~~
include/linux/stddef.h:17:32: note: expanded from macro 'offsetof'
#define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
^ ~~~~
include/linux/compiler_types.h:140:35: note: expanded from macro
'__compiler_offsetof'
#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
^ ~
kernel/bpf/bpf_dummy_struct_ops.c:97:23: note: forward declaration of 'struct
bpf_dummy_ops_state'
case offsetof(struct bpf_dummy_ops_state, val):
^
kernel/bpf/bpf_dummy_struct_ops.c:98:9: error: offsetof of incomplete type 'struct
bpf_dummy_ops_state'
end = offsetofend(struct bpf_dummy_ops_state, val);
^ ~~~~~~
include/linux/stddef.h:37:3: note: expanded from macro 'offsetofend'
(offsetof(TYPE, MEMBER) + sizeof_field(TYPE, MEMBER))
^ ~~~~
include/linux/stddef.h:17:32: note: expanded from macro 'offsetof'
#define offsetof(TYPE, MEMBER) __compiler_offsetof(TYPE, MEMBER)
^ ~~~~
include/linux/compiler_types.h:140:35: note: expanded from macro
'__compiler_offsetof'
#define __compiler_offsetof(a, b) __builtin_offsetof(a, b)
^ ~
kernel/bpf/bpf_dummy_struct_ops.c:97:23: note: forward declaration of 'struct
bpf_dummy_ops_state'
case offsetof(struct bpf_dummy_ops_state, val):
^
> kernel/bpf/bpf_dummy_struct_ops.c:98:9: error: incomplete
definition of type 'struct bpf_dummy_ops_state'
end =
offsetofend(struct bpf_dummy_ops_state, val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/stddef.h:37:28: note: expanded from macro 'offsetofend'
(offsetof(TYPE, MEMBER) + sizeof_field(TYPE, MEMBER))
^~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/stddef.h:28:55: note: expanded from macro 'sizeof_field'
#define sizeof_field(TYPE, MEMBER) sizeof((((TYPE *)0)->MEMBER))
~~~~~~~~~~~^
kernel/bpf/bpf_dummy_struct_ops.c:97:23: note: forward declaration of 'struct
bpf_dummy_ops_state'
case offsetof(struct bpf_dummy_ops_state, val):
^
9 errors generated.
vim +23 include/linux/bpf_dummy_ops.h
19
20 extern struct bpf_dummy_ops *bpf_get_dummy_ops(void);
21 extern void bpf_put_dummy_ops(struct bpf_dummy_ops *ops);
22 #else
23 struct bpf_dummy_ops {};
24 static inline struct bpf_dummy_ops *bpf_get_dummy_ops(void) { return NULL; }
25 static inline void bpf_put_dummy_ops(struct bpf_dummy_ops *ops) {}
26 #endif
27
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org