[jolsa-perf:bpf/tracing_multi_new_1 22/23] kernel/bpf/syscall.c:3150:20: error: field has incomplete type 'struct ftrace_ops'
From: kernel test robot
Date: Sat Aug 13 2022 - 09:38:37 EST
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/tracing_multi_new_1
head: e27bb6c0f6805082ef71568985f74dcefe7ff6ff
commit: dc38a65ab46f4ba538353c1eb7c64ac36202eb54 [22/23] fix
config: mips-randconfig-r031-20220804 (https://download.01.org/0day-ci/archive/20220813/202208132147.npPyYMne-lkp@xxxxxxxxx/config)
compiler: clang version 16.0.0 (https://github.com/llvm/llvm-project 26dd42705c2af0b8f6e5d6cdb32c9bd5ed9524eb)
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
# install mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/commit/?id=dc38a65ab46f4ba538353c1eb7c64ac36202eb54
git remote add jolsa-perf https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
git fetch --no-tags jolsa-perf bpf/tracing_multi_new_1
git checkout dc38a65ab46f4ba538353c1eb7c64ac36202eb54
# 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=mips SHELL=/bin/bash kernel/bpf/
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@xxxxxxxxx>
All errors (new ones prefixed by >>):
kernel/bpf/syscall.c:2523:15: error: call to undeclared function 'is_tracing_multi'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
multi_func = is_tracing_multi(attr->expected_attach_type);
^
>> kernel/bpf/syscall.c:3150:20: error: field has incomplete type 'struct ftrace_ops'
struct ftrace_ops fops;
^
include/linux/bpf.h:51:8: note: forward declaration of 'struct ftrace_ops'
struct ftrace_ops;
^
kernel/bpf/syscall.c:3158:15: error: call to undeclared function 'bpf_trampoline_multi_detach'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
WARN_ON_ONCE(bpf_trampoline_multi_detach(&tr_link->fops, &tr_link->tp, tr_link->id));
^
kernel/bpf/syscall.c:3166:2: error: call to undeclared function 'bpf_tramp_id_put'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
bpf_tramp_id_put(tr_link->id);
^
kernel/bpf/syscall.c:3166:2: note: did you mean 'bpf_trampoline_put'?
include/linux/bpf.h:1021:20: note: 'bpf_trampoline_put' declared here
static inline void bpf_trampoline_put(struct bpf_trampoline *tr) {}
^
kernel/bpf/syscall.c:3329:7: error: call to undeclared function 'bpf_tramp_id_alloc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
id = bpf_tramp_id_alloc(cnt);
^
kernel/bpf/syscall.c:3329:5: error: incompatible integer to pointer conversion assigning to 'struct bpf_tramp_id *' from 'int' [-Wint-conversion]
id = bpf_tramp_id_alloc(cnt);
^ ~~~~~~~~~~~~~~~~~~~~~~~
kernel/bpf/syscall.c:3370:8: error: call to undeclared function 'bpf_trampoline_multi_attach'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
err = bpf_trampoline_multi_attach(&link->fops, &link->tp, id);
^
kernel/bpf/syscall.c:3370:8: note: did you mean 'bpf_tracing_multi_attach'?
kernel/bpf/syscall.c:3314:12: note: 'bpf_tracing_multi_attach' declared here
static int bpf_tracing_multi_attach(struct bpf_prog *prog,
^
kernel/bpf/syscall.c:4842:12: error: call to undeclared function 'is_tracing_multi'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
else if (is_tracing_multi(prog->expected_attach_type))
^
8 errors generated.
vim +3150 kernel/bpf/syscall.c
3144
3145 struct bpf_tracing_multi_link {
3146 struct bpf_link link;
3147 enum bpf_attach_type attach_type;
3148 struct bpf_tramp_prog tp;
3149 struct bpf_tramp_id *id;
> 3150 struct ftrace_ops fops;
3151 };
3152
--
0-DAY CI Kernel Test Service
https://01.org/lkp