* [jolsa-perf:trampoline_multi_10 17/21] kernel/trace/bpf_trace.c:3501:2: error: call to undeclared function 'bpf_trampoline_multi_detach'; ISO C99 and later do not support implicit function declarations
@ 2024-10-23 11:48 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-10-23 11:48 UTC (permalink / raw)
To: Jiri Olsa; +Cc: llvm, oe-kbuild-all
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git trampoline_multi_10
head: 48132820c5a21b82d1a4507a86a67b3742fb110e
commit: c19eedd8a81d51880a58e66419820e592292cb95 [17/21] bpf: Add support to create tracing multi link
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20241023/202410231955.T13VLcJ9-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241023/202410231955.T13VLcJ9-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202410231955.T13VLcJ9-lkp@intel.com/
All errors (new ones prefixed by >>):
In file included from kernel/trace/bpf_trace.c:8:
include/linux/bpf.h:1393:51: warning: declaration of 'struct bpf_tramp_link' will not be visible outside of this function [-Wvisibility]
1393 | static inline int bpf_trampoline_link_prog(struct bpf_tramp_link *link,
| ^
include/linux/bpf.h:1399:53: warning: declaration of 'struct bpf_tramp_link' will not be visible outside of this function [-Wvisibility]
1399 | static inline int bpf_trampoline_unlink_prog(struct bpf_tramp_link *link,
| ^
>> kernel/trace/bpf_trace.c:3501:2: error: call to undeclared function 'bpf_trampoline_multi_detach'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
3501 | bpf_trampoline_multi_detach(link->prog, tr_link);
| ^
kernel/trace/bpf_trace.c:3501:2: note: did you mean 'bpf_tracing_multi_attach'?
include/linux/trace_events.h:781:5: note: 'bpf_tracing_multi_attach' declared here
781 | int bpf_tracing_multi_attach(struct bpf_prog *prog, const union bpf_attr *attr);
| ^
>> kernel/trace/bpf_trace.c:3589:8: error: call to undeclared function 'bpf_trampoline_multi_attach'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
3589 | err = bpf_trampoline_multi_attach(prog, ids, link);
| ^
kernel/trace/bpf_trace.c:3589:8: note: did you mean 'bpf_tracing_multi_attach'?
kernel/trace/bpf_trace.c:3538:5: note: 'bpf_tracing_multi_attach' declared here
3538 | int bpf_tracing_multi_attach(struct bpf_prog *prog,
| ^
2 warnings and 2 errors generated.
vim +/bpf_trampoline_multi_detach +3501 kernel/trace/bpf_trace.c
3495
3496 static void bpf_tracing_multi_link_release(struct bpf_link *link)
3497 {
3498 struct bpf_tracing_multi_link *tr_link =
3499 container_of(link, struct bpf_tracing_multi_link, link);
3500
> 3501 bpf_trampoline_multi_detach(link->prog, tr_link);
3502 }
3503
3504 static void bpf_tracing_multi_link_dealloc(struct bpf_link *link)
3505 {
3506 struct bpf_tracing_multi_link *tr_link =
3507 container_of(link, struct bpf_tracing_multi_link, link);
3508
3509 kfree(tr_link);
3510 }
3511
3512 static void bpf_tracing_multi_link_show_fdinfo(const struct bpf_link *link,
3513 struct seq_file *seq)
3514 {
3515 struct bpf_tracing_multi_link *tr_link =
3516 container_of(link, struct bpf_tracing_multi_link, link);
3517
3518 seq_printf(seq, "attach_type:\t%d\n", tr_link->attach_type);
3519 }
3520
3521 static int bpf_tracing_multi_link_fill_link_info(const struct bpf_link *link,
3522 struct bpf_link_info *info)
3523 {
3524 struct bpf_tracing_multi_link *tr_link =
3525 container_of(link, struct bpf_tracing_multi_link, link);
3526
3527 info->tracing.attach_type = tr_link->attach_type;
3528 return 0;
3529 }
3530
3531 static const struct bpf_link_ops bpf_tracing_multi_link_lops = {
3532 .release = bpf_tracing_multi_link_release,
3533 .dealloc = bpf_tracing_multi_link_dealloc,
3534 .show_fdinfo = bpf_tracing_multi_link_show_fdinfo,
3535 .fill_link_info = bpf_tracing_multi_link_fill_link_info,
3536 };
3537
3538 int bpf_tracing_multi_attach(struct bpf_prog *prog,
3539 const union bpf_attr *attr)
3540 {
3541 struct bpf_attach_target_info tgt_info = {};
3542 struct bpf_tracing_multi_link *link = NULL;
3543 struct bpf_link_primer link_primer;
3544 u32 i, j, cnt, *ids = NULL;
3545 u32 __user *uids;
3546 int err;
3547
3548 if (check_multi_prog_type(prog))
3549 return -EINVAL;
3550
3551 uids = u64_to_user_ptr(attr->link_create.tracing_multi.btf_ids);
3552 cnt = attr->link_create.tracing_multi.btf_ids_cnt;
3553
3554 if (!cnt || !uids)
3555 return -EINVAL;
3556
3557 ids = kvmalloc_array(cnt, sizeof(*ids), GFP_KERNEL);
3558 if (!ids)
3559 return -ENOMEM;
3560
3561 if (copy_from_user(ids, uids, cnt * sizeof(*ids))) {
3562 err = -EFAULT;
3563 goto error;
3564 }
3565
3566 link = kzalloc(struct_size(link, nodes, cnt), GFP_KERNEL);
3567 if (!link) {
3568 err = -ENOMEM;
3569 goto error;
3570 }
3571
3572 bpf_link_init(&link->link, BPF_LINK_TYPE_TRACING_MULTI,
3573 &bpf_tracing_multi_link_lops, prog);
3574 link->attach_type = prog->expected_attach_type;
3575
3576 err = bpf_link_prime(&link->link, &link_primer);
3577 if (err)
3578 goto error;
3579
3580 for (i = 0, j = 0; i < cnt; i++) {
3581 err = bpf_check_attach_target(NULL, prog, NULL, ids[i], &tgt_info);
3582 if (err)
3583 continue;
3584 ids[j++] = ids[i];
3585 }
3586
3587 link->nodes_cnt = j;
3588
> 3589 err = bpf_trampoline_multi_attach(prog, ids, link);
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-10-23 11:48 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-23 11:48 [jolsa-perf:trampoline_multi_10 17/21] kernel/trace/bpf_trace.c:3501:2: error: call to undeclared function 'bpf_trampoline_multi_detach'; ISO C99 and later do not support implicit function declarations kernel test robot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox