[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202510172346.Djfrforq-lkp@intel.com>
Date: Sat, 18 Oct 2025 00:03:12 +0800
From: kernel test robot <lkp@...el.com>
To: Amery Hung <ameryhung@...il.com>, bpf@...r.kernel.org
Cc: 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-randconfig-161-20251017 (https://download.01.org/0day-ci/archive/20251017/202510172346.Djfrforq-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20251017/202510172346.Djfrforq-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/202510172346.Djfrforq-lkp@intel.com/
All errors (new ones prefixed by >>):
kernel/bpf/core.c: In function 'bpf_prog_free_deferred':
>> kernel/bpf/core.c:2881:17: error: implicit declaration of function 'bpf_struct_ops_put'; did you mean 'bpf_struct_ops_find'? [-Wimplicit-function-declaration]
2881 | bpf_struct_ops_put(aux->st_ops_assoc);
| ^~~~~~~~~~~~~~~~~~
| bpf_struct_ops_find
vim +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