[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202304061228.XRcVvxoL-lkp@intel.com>
Date: Thu, 6 Apr 2023 12:50:53 +0800
From: kernel test robot <lkp@...el.com>
To: Florian Westphal <fw@...len.de>, netdev@...r.kernel.org
Cc: oe-kbuild-all@...ts.linux.dev, netfilter-devel@...r.kernel.org,
bpf@...r.kernel.org, dxu@...uu.xyz, qde@...cy.de,
Florian Westphal <fw@...len.de>
Subject: Re: [PATCH bpf-next 1/6] bpf: add bpf_link support for BPF_NETFILTER
programs
Hi Florian,
kernel test robot noticed the following build errors:
[auto build test ERROR on bpf-next/master]
url: https://github.com/intel-lab-lkp/linux/commits/Florian-Westphal/bpf-add-bpf_link-support-for-BPF_NETFILTER-programs/20230406-001447
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20230405161116.13565-2-fw%40strlen.de
patch subject: [PATCH bpf-next 1/6] bpf: add bpf_link support for BPF_NETFILTER programs
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20230406/202304061228.XRcVvxoL-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (this is a W=1 build):
# https://github.com/intel-lab-lkp/linux/commit/f373efb623e6ff708403b172fafb506028de6cb8
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Florian-Westphal/bpf-add-bpf_link-support-for-BPF_NETFILTER-programs/20230406-001447
git checkout f373efb623e6ff708403b172fafb506028de6cb8
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 olddefconfig
make 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@...el.com>
| Link: https://lore.kernel.org/oe-kbuild-all/202304061228.XRcVvxoL-lkp@intel.com/
All errors (new ones prefixed by >>):
ld: vmlinux.o: in function `link_create':
>> kernel/bpf/syscall.c:4671: undefined reference to `bpf_nf_link_attach'
vim +4671 kernel/bpf/syscall.c
4578
4579 #define BPF_LINK_CREATE_LAST_FIELD link_create.kprobe_multi.cookies
4580 static int link_create(union bpf_attr *attr, bpfptr_t uattr)
4581 {
4582 enum bpf_prog_type ptype;
4583 struct bpf_prog *prog;
4584 int ret;
4585
4586 if (CHECK_ATTR(BPF_LINK_CREATE))
4587 return -EINVAL;
4588
4589 if (attr->link_create.attach_type == BPF_STRUCT_OPS)
4590 return bpf_struct_ops_link_create(attr);
4591
4592 prog = bpf_prog_get(attr->link_create.prog_fd);
4593 if (IS_ERR(prog))
4594 return PTR_ERR(prog);
4595
4596 ret = bpf_prog_attach_check_attach_type(prog,
4597 attr->link_create.attach_type);
4598 if (ret)
4599 goto out;
4600
4601 switch (prog->type) {
4602 case BPF_PROG_TYPE_EXT:
4603 case BPF_PROG_TYPE_NETFILTER:
4604 break;
4605 case BPF_PROG_TYPE_PERF_EVENT:
4606 case BPF_PROG_TYPE_TRACEPOINT:
4607 if (attr->link_create.attach_type != BPF_PERF_EVENT) {
4608 ret = -EINVAL;
4609 goto out;
4610 }
4611 break;
4612 case BPF_PROG_TYPE_KPROBE:
4613 if (attr->link_create.attach_type != BPF_PERF_EVENT &&
4614 attr->link_create.attach_type != BPF_TRACE_KPROBE_MULTI) {
4615 ret = -EINVAL;
4616 goto out;
4617 }
4618 break;
4619 default:
4620 ptype = attach_type_to_prog_type(attr->link_create.attach_type);
4621 if (ptype == BPF_PROG_TYPE_UNSPEC || ptype != prog->type) {
4622 ret = -EINVAL;
4623 goto out;
4624 }
4625 break;
4626 }
4627
4628 switch (prog->type) {
4629 case BPF_PROG_TYPE_CGROUP_SKB:
4630 case BPF_PROG_TYPE_CGROUP_SOCK:
4631 case BPF_PROG_TYPE_CGROUP_SOCK_ADDR:
4632 case BPF_PROG_TYPE_SOCK_OPS:
4633 case BPF_PROG_TYPE_CGROUP_DEVICE:
4634 case BPF_PROG_TYPE_CGROUP_SYSCTL:
4635 case BPF_PROG_TYPE_CGROUP_SOCKOPT:
4636 ret = cgroup_bpf_link_attach(attr, prog);
4637 break;
4638 case BPF_PROG_TYPE_EXT:
4639 ret = bpf_tracing_prog_attach(prog,
4640 attr->link_create.target_fd,
4641 attr->link_create.target_btf_id,
4642 attr->link_create.tracing.cookie);
4643 break;
4644 case BPF_PROG_TYPE_LSM:
4645 case BPF_PROG_TYPE_TRACING:
4646 if (attr->link_create.attach_type != prog->expected_attach_type) {
4647 ret = -EINVAL;
4648 goto out;
4649 }
4650 if (prog->expected_attach_type == BPF_TRACE_RAW_TP)
4651 ret = bpf_raw_tp_link_attach(prog, NULL);
4652 else if (prog->expected_attach_type == BPF_TRACE_ITER)
4653 ret = bpf_iter_link_attach(attr, uattr, prog);
4654 else if (prog->expected_attach_type == BPF_LSM_CGROUP)
4655 ret = cgroup_bpf_link_attach(attr, prog);
4656 else
4657 ret = bpf_tracing_prog_attach(prog,
4658 attr->link_create.target_fd,
4659 attr->link_create.target_btf_id,
4660 attr->link_create.tracing.cookie);
4661 break;
4662 case BPF_PROG_TYPE_FLOW_DISSECTOR:
4663 case BPF_PROG_TYPE_SK_LOOKUP:
4664 ret = netns_bpf_link_create(attr, prog);
4665 break;
4666 #ifdef CONFIG_NET
4667 case BPF_PROG_TYPE_XDP:
4668 ret = bpf_xdp_link_attach(attr, prog);
4669 break;
4670 case BPF_PROG_TYPE_NETFILTER:
> 4671 ret = bpf_nf_link_attach(attr, prog);
4672 break;
4673 #endif
4674 case BPF_PROG_TYPE_PERF_EVENT:
4675 case BPF_PROG_TYPE_TRACEPOINT:
4676 ret = bpf_perf_link_attach(attr, prog);
4677 break;
4678 case BPF_PROG_TYPE_KPROBE:
4679 if (attr->link_create.attach_type == BPF_PERF_EVENT)
4680 ret = bpf_perf_link_attach(attr, prog);
4681 else
4682 ret = bpf_kprobe_multi_link_attach(attr, prog);
4683 break;
4684 default:
4685 ret = -EINVAL;
4686 }
4687
4688 out:
4689 if (ret < 0)
4690 bpf_prog_put(prog);
4691 return ret;
4692 }
4693
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests
Powered by blists - more mailing lists