* [jolsa-perf:bpf/tramp_22 20/21] kernel/bpf/syscall.c:3306:7: error: call to undeclared function 'bpf_tramp_id_alloc'; ISO C99 and later do not support implicit function declarations
@ 2022-07-06 21:35 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-07-06 21:35 UTC (permalink / raw)
To: Jiri Olsa; +Cc: llvm, kbuild-all, linux-kernel
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/tramp_22
head: 1d891c46bb689a24985cea58f4eddb053d6b1331
commit: 70d8bfe245ee929757e1dcdf280f9e27786047a9 [20/21] bpf: Add support for tracing multi link
config: x86_64-randconfig-a012 (https://download.01.org/0day-ci/archive/20220707/202207070530.sgflrE6n-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project f553287b588916de09c66e3e32bf75e5060f967f)
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://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/commit/?id=70d8bfe245ee929757e1dcdf280f9e27786047a9
git remote add jolsa-perf https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
git fetch --no-tags jolsa-perf bpf/tramp_22
git checkout 70d8bfe245ee929757e1dcdf280f9e27786047a9
# 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=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
kernel/bpf/syscall.c:3128:26: error: field has incomplete type 'struct bpf_tramp_attach'
struct bpf_tramp_attach attach;
^
kernel/bpf/syscall.c:3128:9: note: forward declaration of 'struct bpf_tramp_attach'
struct bpf_tramp_attach attach;
^
kernel/bpf/syscall.c:3136:15: error: call to undeclared function 'bpf_trampoline_detach'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
WARN_ON_ONCE(bpf_trampoline_detach(&tr_link->attach));
^
kernel/bpf/syscall.c:3136:15: note: did you mean 'bpf_trampoline_get'?
include/linux/bpf.h:993:38: note: 'bpf_trampoline_get' declared here
static inline struct bpf_trampoline *bpf_trampoline_get(u64 key,
^
>> kernel/bpf/syscall.c:3306: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:3306:5: warning: 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:3347:8: error: call to undeclared function 'bpf_trampoline_attach'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
err = bpf_trampoline_attach(&link->attach);
^
1 warning and 4 errors generated.
vim +/bpf_tramp_id_alloc +3306 kernel/bpf/syscall.c
3290
3291 static int bpf_tracing_multi_attach(struct bpf_prog *prog,
3292 const union bpf_attr *attr)
3293 {
3294 void __user *uids = u64_to_user_ptr(attr->link_create.tracing_multi.btf_ids);
3295 u32 cnt_size, cnt = attr->link_create.tracing_multi.btf_ids_cnt;
3296 struct bpf_tracing_multi_link *link = NULL;
3297 struct bpf_link_primer link_primer;
3298 struct bpf_tramp_id *id = NULL;
3299 int err = -EINVAL;
3300
3301 if (check_multi_prog_type(prog))
3302 return -EINVAL;
3303 if (!cnt || !uids)
3304 return -EINVAL;
3305
> 3306 id = bpf_tramp_id_alloc(cnt);
3307 if (!id)
3308 return -ENOMEM;
3309
3310 err = -EFAULT;
3311 cnt_size = cnt * sizeof(id->id[0]);
3312 if (copy_from_user(id->id, uids, cnt_size))
3313 goto out_free_id;
3314
3315 id->cnt = cnt;
3316 id->obj_id = btf_obj_id(prog->aux->attach_btf);
3317
3318 /* Sort user provided BTF ids, so we can use memcmp
3319 * and bsearch on top of it later.
3320 */
3321 sort(id->id, cnt, sizeof(u32), btf_ids_cmp, NULL);
3322
3323 err = bpf_tramp_id_resolve(id, prog);
3324 if (err)
3325 goto out_free_id;
3326
3327 link = kzalloc(sizeof(*link), GFP_KERNEL);
3328 if (!link) {
3329 err = -ENOMEM;
3330 goto out_free_id;
3331 }
3332
3333 bpf_link_init(&link->link, BPF_LINK_TYPE_TRACING_MULTI,
3334 &bpf_tracing_multi_link_lops, prog);
3335 link->attach_type = prog->expected_attach_type;
3336
3337 err = bpf_link_prime(&link->link, &link_primer);
3338 if (err) {
3339 kfree(link);
3340 goto out_free_id;
3341 }
3342
3343 link->attach.id = id;
3344 link->attach.tp.cookie = 0;
3345 link->attach.tp.prog = prog;
3346
3347 err = bpf_trampoline_attach(&link->attach);
3348 if (err) {
3349 bpf_link_cleanup(&link_primer);
3350 goto out_free_id;
3351 }
3352 return bpf_link_settle(&link_primer);
3353 out_free_id:
3354 kfree(id);
3355 return err;
3356 }
3357
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-07-06 21:36 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-06 21:35 [jolsa-perf:bpf/tramp_22 20/21] kernel/bpf/syscall.c:3306:7: error: call to undeclared function 'bpf_tramp_id_alloc'; ISO C99 and later do not support implicit function declarations kernel 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.