Hi Andrii, kernel test robot noticed the following build errors: [auto build test ERROR on trace/for-next] url: https://github.com/intel-lab-lkp/linux/commits/Andrii-Nakryiko/bpf-decouple-BPF-link-attach-hook-and-BPF-program-sleepable-semantics/20241101-051131 base: https://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace for-next patch link: https://lore.kernel.org/r/20241031210938.1696639-3-andrii%40kernel.org patch subject: [PATCH trace/for-next 3/3] bpf: ensure RCU Tasks Trace GP for sleepable raw tracepoint BPF links config: i386-buildonly-randconfig-001-20241101 (https://download.01.org/0day-ci/archive/20241101/202411011258.IemsLYSp-lkp@xxxxxxxxx/config) compiler: clang version 19.1.3 (https://github.com/llvm/llvm-project ab51eccf88f5321e7c60591c5546b254b6afab99) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20241101/202411011258.IemsLYSp-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/202411011258.IemsLYSp-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): In file included from kernel/bpf/syscall.c:4: In file included from include/linux/bpf.h:21: In file included from include/linux/kallsyms.h:13: In file included from include/linux/mm.h:2213: include/linux/vmstat.h:518:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion] 518 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_" | ~~~~~~~~~~~ ^ ~~~ >> kernel/bpf/syscall.c:3866:5: error: call to undeclared function 'tracepoint_is_faultable'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration] 3866 | tracepoint_is_faultable(btp->tp)); | ^ kernel/bpf/syscall.c:5876:30: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion] 5876 | .arg2_type = ARG_PTR_TO_MEM | MEM_RDONLY, | ~~~~~~~~~~~~~~ ^ ~~~~~~~~~~ kernel/bpf/syscall.c:5926:41: warning: bitwise operation between different enumeration types ('enum bpf_arg_type' and 'enum bpf_type_flag') [-Wenum-enum-conversion] 5926 | .arg4_type = ARG_PTR_TO_FIXED_SIZE_MEM | MEM_UNINIT | MEM_ALIGNED, | ~~~~~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~ 3 warnings and 1 error generated. vim +/tracepoint_is_faultable +3866 kernel/bpf/syscall.c 3818 3819 static int bpf_raw_tp_link_attach(struct bpf_prog *prog, 3820 const char __user *user_tp_name, u64 cookie) 3821 { 3822 struct bpf_link_primer link_primer; 3823 struct bpf_raw_tp_link *link; 3824 struct bpf_raw_event_map *btp; 3825 const char *tp_name; 3826 char buf[128]; 3827 int err; 3828 3829 switch (prog->type) { 3830 case BPF_PROG_TYPE_TRACING: 3831 case BPF_PROG_TYPE_EXT: 3832 case BPF_PROG_TYPE_LSM: 3833 if (user_tp_name) 3834 /* The attach point for this category of programs 3835 * should be specified via btf_id during program load. 3836 */ 3837 return -EINVAL; 3838 if (prog->type == BPF_PROG_TYPE_TRACING && 3839 prog->expected_attach_type == BPF_TRACE_RAW_TP) { 3840 tp_name = prog->aux->attach_func_name; 3841 break; 3842 } 3843 return bpf_tracing_prog_attach(prog, 0, 0, 0); 3844 case BPF_PROG_TYPE_RAW_TRACEPOINT: 3845 case BPF_PROG_TYPE_RAW_TRACEPOINT_WRITABLE: 3846 if (strncpy_from_user(buf, user_tp_name, sizeof(buf) - 1) < 0) 3847 return -EFAULT; 3848 buf[sizeof(buf) - 1] = 0; 3849 tp_name = buf; 3850 break; 3851 default: 3852 return -EINVAL; 3853 } 3854 3855 btp = bpf_get_raw_tracepoint(tp_name); 3856 if (!btp) 3857 return -ENOENT; 3858 3859 link = kzalloc(sizeof(*link), GFP_USER); 3860 if (!link) { 3861 err = -ENOMEM; 3862 goto out_put_btp; 3863 } 3864 bpf_link_init_sleepable(&link->link, BPF_LINK_TYPE_RAW_TRACEPOINT, 3865 &bpf_raw_tp_link_lops, prog, > 3866 tracepoint_is_faultable(btp->tp)); 3867 link->btp = btp; 3868 link->cookie = cookie; 3869 3870 err = bpf_link_prime(&link->link, &link_primer); 3871 if (err) { 3872 kfree(link); 3873 goto out_put_btp; 3874 } 3875 3876 err = bpf_probe_register(link->btp, link); 3877 if (err) { 3878 bpf_link_cleanup(&link_primer); 3879 goto out_put_btp; 3880 } 3881 3882 return bpf_link_settle(&link_primer); 3883 3884 out_put_btp: 3885 bpf_put_raw_tracepoint(btp); 3886 return err; 3887 } 3888 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki