Hi Ilya, 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/Ilya-Leoshkevich/bpf-Support-64-bit-pointers-to-kfuncs/20230405-221738 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master patch link: https://lore.kernel.org/r/20230405141407.172357-1-iii%40linux.ibm.com patch subject: [PATCH bpf-next v5] bpf: Support 64-bit pointers to kfuncs config: i386-randconfig-r022-20230403 (https://download.01.org/0day-ci/archive/20230406/202304060240.OeUgnjzZ-lkp@xxxxxxxxx/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/43119fecff7ac0771f037a6dc128ceb791917466 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Ilya-Leoshkevich/bpf-Support-64-bit-pointers-to-kfuncs/20230405-221738 git checkout 43119fecff7ac0771f037a6dc128ceb791917466 # save the config file mkdir build_dir && cp config build_dir/.config make W=1 O=build_dir ARCH=i386 olddefconfig make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash kernel/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Link: https://lore.kernel.org/oe-kbuild-all/202304060240.OeUgnjzZ-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): kernel/bpf/core.c: In function 'bpf_jit_get_func_addr': >> kernel/bpf/core.c:1207:23: error: implicit declaration of function 'bpf_get_kfunc_addr'; did you mean 'bpf_jit_get_func_addr'? [-Werror=implicit-function-declaration] 1207 | err = bpf_get_kfunc_addr(prog, insn->imm, insn->off, &addr); | ^~~~~~~~~~~~~~~~~~ | bpf_jit_get_func_addr kernel/bpf/core.c: At top level: kernel/bpf/core.c:1638:12: warning: no previous prototype for 'bpf_probe_read_kernel' [-Wmissing-prototypes] 1638 | u64 __weak bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr) | ^~~~~~~~~~~~~~~~~~~~~ kernel/bpf/core.c:2075:6: warning: no previous prototype for 'bpf_patch_call_args' [-Wmissing-prototypes] 2075 | void bpf_patch_call_args(struct bpf_insn *insn, u32 stack_depth) | ^~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +1207 kernel/bpf/core.c 1182 1183 int bpf_jit_get_func_addr(const struct bpf_prog *prog, 1184 const struct bpf_insn *insn, bool extra_pass, 1185 u64 *func_addr, bool *func_addr_fixed) 1186 { 1187 s16 off = insn->off; 1188 s32 imm = insn->imm; 1189 u8 *addr; 1190 int err; 1191 1192 *func_addr_fixed = insn->src_reg != BPF_PSEUDO_CALL; 1193 if (!*func_addr_fixed) { 1194 /* Place-holder address till the last pass has collected 1195 * all addresses for JITed subprograms in which case we 1196 * can pick them up from prog->aux. 1197 */ 1198 if (!extra_pass) 1199 addr = NULL; 1200 else if (prog->aux->func && 1201 off >= 0 && off < prog->aux->func_cnt) 1202 addr = (u8 *)prog->aux->func[off]->bpf_func; 1203 else 1204 return -EINVAL; 1205 } else if (insn->src_reg == BPF_PSEUDO_KFUNC_CALL && 1206 bpf_jit_supports_far_kfunc_call()) { > 1207 err = bpf_get_kfunc_addr(prog, insn->imm, insn->off, &addr); 1208 if (err) 1209 return err; 1210 } else { 1211 /* Address of a BPF helper call. Since part of the core 1212 * kernel, it's always at a fixed location. __bpf_call_base 1213 * and the helper with imm relative to it are both in core 1214 * kernel. 1215 */ 1216 addr = (u8 *)__bpf_call_base + imm; 1217 } 1218 1219 *func_addr = (unsigned long)addr; 1220 return 0; 1221 } 1222 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests