Re: [PATCH bpf-next] bpf, sockmap: Rename sock_map_get_from_fd to sock_map_prog_attach

From: kernel test robot
Date: Thu Aug 31 2023 - 07:12:00 EST


Hi Xu,

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/Xu-Kuohai/bpf-sockmap-Rename-sock_map_get_from_fd-to-sock_map_prog_attach/20230831-094551
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20230831014346.2931397-1-xukuohai%40huaweicloud.com
patch subject: [PATCH bpf-next] bpf, sockmap: Rename sock_map_get_from_fd to sock_map_prog_attach
config: parisc-randconfig-r012-20230831 (https://download.01.org/0day-ci/archive/20230831/202308311959.Snzn4Unt-lkp@xxxxxxxxx/config)
compiler: hppa-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230831/202308311959.Snzn4Unt-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202308311959.Snzn4Unt-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

kernel/bpf/syscall.c: In function 'bpf_prog_attach':
>> kernel/bpf/syscall.c:3825:23: error: implicit declaration of function 'sock_map_prog_attach'; did you mean 'sock_map_prog_detach'? [-Werror=implicit-function-declaration]
3825 | ret = sock_map_prog_attach(attr, prog);
| ^~~~~~~~~~~~~~~~~~~~
| sock_map_prog_detach
cc1: some warnings being treated as errors


vim +3825 kernel/bpf/syscall.c

3782
3783 #define BPF_F_ATTACH_MASK_BASE \
3784 (BPF_F_ALLOW_OVERRIDE | \
3785 BPF_F_ALLOW_MULTI | \
3786 BPF_F_REPLACE)
3787
3788 #define BPF_F_ATTACH_MASK_MPROG \
3789 (BPF_F_REPLACE | \
3790 BPF_F_BEFORE | \
3791 BPF_F_AFTER | \
3792 BPF_F_ID | \
3793 BPF_F_LINK)
3794
3795 static int bpf_prog_attach(const union bpf_attr *attr)
3796 {
3797 enum bpf_prog_type ptype;
3798 struct bpf_prog *prog;
3799 u32 mask;
3800 int ret;
3801
3802 if (CHECK_ATTR(BPF_PROG_ATTACH))
3803 return -EINVAL;
3804
3805 ptype = attach_type_to_prog_type(attr->attach_type);
3806 if (ptype == BPF_PROG_TYPE_UNSPEC)
3807 return -EINVAL;
3808 mask = bpf_mprog_supported(ptype) ?
3809 BPF_F_ATTACH_MASK_MPROG : BPF_F_ATTACH_MASK_BASE;
3810 if (attr->attach_flags & ~mask)
3811 return -EINVAL;
3812
3813 prog = bpf_prog_get_type(attr->attach_bpf_fd, ptype);
3814 if (IS_ERR(prog))
3815 return PTR_ERR(prog);
3816
3817 if (bpf_prog_attach_check_attach_type(prog, attr->attach_type)) {
3818 bpf_prog_put(prog);
3819 return -EINVAL;
3820 }
3821
3822 switch (ptype) {
3823 case BPF_PROG_TYPE_SK_SKB:
3824 case BPF_PROG_TYPE_SK_MSG:
> 3825 ret = sock_map_prog_attach(attr, prog);
3826 break;
3827 case BPF_PROG_TYPE_LIRC_MODE2:
3828 ret = lirc_prog_attach(attr, prog);
3829 break;
3830 case BPF_PROG_TYPE_FLOW_DISSECTOR:
3831 ret = netns_bpf_prog_attach(attr, prog);
3832 break;
3833 case BPF_PROG_TYPE_CGROUP_DEVICE:
3834 case BPF_PROG_TYPE_CGROUP_SKB:
3835 case BPF_PROG_TYPE_CGROUP_SOCK:
3836 case BPF_PROG_TYPE_CGROUP_SOCK_ADDR:
3837 case BPF_PROG_TYPE_CGROUP_SOCKOPT:
3838 case BPF_PROG_TYPE_CGROUP_SYSCTL:
3839 case BPF_PROG_TYPE_SOCK_OPS:
3840 case BPF_PROG_TYPE_LSM:
3841 if (ptype == BPF_PROG_TYPE_LSM &&
3842 prog->expected_attach_type != BPF_LSM_CGROUP)
3843 ret = -EINVAL;
3844 else
3845 ret = cgroup_bpf_prog_attach(attr, ptype, prog);
3846 break;
3847 case BPF_PROG_TYPE_SCHED_CLS:
3848 ret = tcx_prog_attach(attr, prog);
3849 break;
3850 default:
3851 ret = -EINVAL;
3852 }
3853
3854 if (ret)
3855 bpf_prog_put(prog);
3856 return ret;
3857 }
3858

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki