Hi Song, I love your patch! Perhaps something to improve: [auto build test WARNING on bpf-next/master] url: https://github.com/intel-lab-lkp/linux/commits/Song-Liu/ftrace-host-klp-and-bpf-trampoline-together/20220602-020112 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master config: i386-randconfig-a015 (https://download.01.org/0day-ci/archive/20220602/202206020622.HnFjEObo-lkp@xxxxxxxxx/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c825abd6b0198fb088d9752f556a70705bc99dfd) 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/intel-lab-lkp/linux/commit/7edcf1c49617641579f2bc36b86c7d59bea20aef git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Song-Liu/ftrace-host-klp-and-bpf-trampoline-together/20220602-020112 git checkout 7edcf1c49617641579f2bc36b86c7d59bea20aef # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=i386 SHELL=/bin/bash kernel/bpf/ If you fix the issue, kindly add following tag where applicable Reported-by: kernel test robot <lkp@xxxxxxxxx> All warnings (new ones prefixed by >>): >> kernel/bpf/trampoline.c:30:66: warning: declaration of 'enum ftrace_ops_cmd' will not be visible outside of this function [-Wvisibility] static int bpf_tramp_ftrace_ops_func(struct ftrace_ops *op, enum ftrace_ops_cmd cmd); ^ kernel/bpf/trampoline.c:92:21: error: invalid application of 'sizeof' to an incomplete type 'struct ftrace_ops' tr->fops = kzalloc(sizeof(struct ftrace_ops), GFP_KERNEL); ^ ~~~~~~~~~~~~~~~~~~~ include/linux/bpf.h:47:8: note: forward declaration of 'struct ftrace_ops' struct ftrace_ops; ^ kernel/bpf/trampoline.c:100:10: error: incomplete definition of type 'struct ftrace_ops' tr->fops->private = tr; ~~~~~~~~^ include/linux/bpf.h:47:8: note: forward declaration of 'struct ftrace_ops' struct ftrace_ops; ^ kernel/bpf/trampoline.c:101:10: error: incomplete definition of type 'struct ftrace_ops' tr->fops->ops_func = bpf_tramp_ftrace_ops_func; ~~~~~~~~^ include/linux/bpf.h:47:8: note: forward declaration of 'struct ftrace_ops' struct ftrace_ops; ^ kernel/bpf/trampoline.c:397:11: error: incomplete definition of type 'struct ftrace_ops' tr->fops->flags |= FTRACE_OPS_FL_SHARE_IPMODIFY; ~~~~~~~~^ include/linux/bpf.h:47:8: note: forward declaration of 'struct ftrace_ops' struct ftrace_ops; ^ kernel/bpf/trampoline.c:397:22: error: use of undeclared identifier 'FTRACE_OPS_FL_SHARE_IPMODIFY' tr->fops->flags |= FTRACE_OPS_FL_SHARE_IPMODIFY; ^ kernel/bpf/trampoline.c:415:11: error: incomplete definition of type 'struct ftrace_ops' tr->fops->func = NULL; ~~~~~~~~^ include/linux/bpf.h:47:8: note: forward declaration of 'struct ftrace_ops' struct ftrace_ops; ^ kernel/bpf/trampoline.c:416:11: error: incomplete definition of type 'struct ftrace_ops' tr->fops->trampoline = 0; ~~~~~~~~^ include/linux/bpf.h:47:8: note: forward declaration of 'struct ftrace_ops' struct ftrace_ops; ^ kernel/bpf/trampoline.c:431:67: warning: declaration of 'enum ftrace_ops_cmd' will not be visible outside of this function [-Wvisibility] static int bpf_tramp_ftrace_ops_func(struct ftrace_ops *ops, enum ftrace_ops_cmd cmd) ^ kernel/bpf/trampoline.c:431:12: error: conflicting types for 'bpf_tramp_ftrace_ops_func' static int bpf_tramp_ftrace_ops_func(struct ftrace_ops *ops, enum ftrace_ops_cmd cmd) ^ kernel/bpf/trampoline.c:30:12: note: previous declaration is here static int bpf_tramp_ftrace_ops_func(struct ftrace_ops *op, enum ftrace_ops_cmd cmd); ^ kernel/bpf/trampoline.c:431:82: error: variable has incomplete type 'enum ftrace_ops_cmd' static int bpf_tramp_ftrace_ops_func(struct ftrace_ops *ops, enum ftrace_ops_cmd cmd) ^ kernel/bpf/trampoline.c:431:67: note: forward declaration of 'enum ftrace_ops_cmd' static int bpf_tramp_ftrace_ops_func(struct ftrace_ops *ops, enum ftrace_ops_cmd cmd) ^ kernel/bpf/trampoline.c:433:33: error: incomplete definition of type 'struct ftrace_ops' struct bpf_trampoline *tr = ops->private; ~~~^ include/linux/bpf.h:47:8: note: forward declaration of 'struct ftrace_ops' struct ftrace_ops; ^ kernel/bpf/trampoline.c:448:7: error: use of undeclared identifier 'FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY' case FTRACE_OPS_CMD_ENABLE_SHARE_IPMODIFY: ^ kernel/bpf/trampoline.c:452:7: error: use of undeclared identifier 'FTRACE_OPS_CMD_DISABLE_SHARE_IPMODIFY' case FTRACE_OPS_CMD_DISABLE_SHARE_IPMODIFY: ^ kernel/bpf/trampoline.c:454:11: error: incomplete definition of type 'struct ftrace_ops' tr->fops->flags &= ~FTRACE_OPS_FL_SHARE_IPMODIFY; ~~~~~~~~^ include/linux/bpf.h:47:8: note: forward declaration of 'struct ftrace_ops' struct ftrace_ops; ^ kernel/bpf/trampoline.c:454:23: error: use of undeclared identifier 'FTRACE_OPS_FL_SHARE_IPMODIFY' tr->fops->flags &= ~FTRACE_OPS_FL_SHARE_IPMODIFY; ^ 2 warnings and 14 errors generated. vim +30 kernel/bpf/trampoline.c 29 > 30 static int bpf_tramp_ftrace_ops_func(struct ftrace_ops *op, enum ftrace_ops_cmd cmd); 31 -- 0-DAY CI Kernel Test Service https://01.org/lkp