[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202510180007.IYugtu6G-lkp@intel.com>
Date: Sat, 18 Oct 2025 01:05:23 +0800
From: kernel test robot <lkp@...el.com>
To: Amery Hung <ameryhung@...il.com>, bpf@...r.kernel.org
Cc: llvm@...ts.linux.dev, oe-kbuild-all@...ts.linux.dev,
netdev@...r.kernel.org, alexei.starovoitov@...il.com,
andrii@...nel.org, daniel@...earbox.net, tj@...nel.org,
martin.lau@...nel.org, ameryhung@...il.com, kernel-team@...a.com
Subject: Re: [PATCH v2 bpf-next 2/4] bpf: Support associating BPF program
with struct_ops
Hi Amery,
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/Amery-Hung/bpf-Allow-verifier-to-fixup-kernel-module-kfuncs/20251017-044703
base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link: https://lore.kernel.org/r/20251016204503.3203690-3-ameryhung%40gmail.com
patch subject: [PATCH v2 bpf-next 2/4] bpf: Support associating BPF program with struct_ops
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20251018/202510180007.IYugtu6G-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251018/202510180007.IYugtu6G-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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202510180007.IYugtu6G-lkp@intel.com/
All errors (new ones prefixed by >>):
>> kernel/bpf/core.c:2881:3: error: call to undeclared function 'bpf_struct_ops_put'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
2881 | bpf_struct_ops_put(aux->st_ops_assoc);
| ^
kernel/bpf/core.c:2881:3: note: did you mean 'bpf_struct_ops_find'?
include/linux/btf.h:538:49: note: 'bpf_struct_ops_find' declared here
538 | static inline const struct bpf_struct_ops_desc *bpf_struct_ops_find(struct btf *btf, u32 type_id)
| ^
1 error generated.
vim +/bpf_struct_ops_put +2881 kernel/bpf/core.c
2863
2864 static void bpf_prog_free_deferred(struct work_struct *work)
2865 {
2866 struct bpf_prog_aux *aux;
2867 int i;
2868
2869 aux = container_of(work, struct bpf_prog_aux, work);
2870 #ifdef CONFIG_BPF_SYSCALL
2871 bpf_free_kfunc_btf_tab(aux->kfunc_btf_tab);
2872 bpf_prog_stream_free(aux->prog);
2873 #endif
2874 #ifdef CONFIG_CGROUP_BPF
2875 if (aux->cgroup_atype != CGROUP_BPF_ATTACH_TYPE_INVALID)
2876 bpf_cgroup_atype_put(aux->cgroup_atype);
2877 #endif
2878 bpf_free_used_maps(aux);
2879 bpf_free_used_btfs(aux);
2880 if (aux->st_ops_assoc) {
> 2881 bpf_struct_ops_put(aux->st_ops_assoc);
2882 bpf_prog_disassoc_struct_ops(aux->prog);
2883 }
2884 if (bpf_prog_is_dev_bound(aux))
2885 bpf_prog_dev_bound_destroy(aux->prog);
2886 #ifdef CONFIG_PERF_EVENTS
2887 if (aux->prog->has_callchain_buf)
2888 put_callchain_buffers();
2889 #endif
2890 if (aux->dst_trampoline)
2891 bpf_trampoline_put(aux->dst_trampoline);
2892 for (i = 0; i < aux->real_func_cnt; i++) {
2893 /* We can just unlink the subprog poke descriptor table as
2894 * it was originally linked to the main program and is also
2895 * released along with it.
2896 */
2897 aux->func[i]->aux->poke_tab = NULL;
2898 bpf_jit_free(aux->func[i]);
2899 }
2900 if (aux->real_func_cnt) {
2901 kfree(aux->func);
2902 bpf_prog_unlock_free(aux->prog);
2903 } else {
2904 bpf_jit_free(aux->prog);
2905 }
2906 }
2907
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
Powered by blists - more mailing lists