Hi Paul,
I love your patch! Yet something to improve:
[auto build test ERROR on bpf-next/master]
[also build test ERROR on bpf/master tip/perf/core acme/perf/core linus/master v6.1
next-20221220]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url:
https://github.com/intel-lab-lkp/linux/commits/Paul-Moore/bpf-restore-the...
base:
https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master
patch link:
https://lore.kernel.org/r/20221223185531.222689-1-paul%40paul-moore.com
patch subject: [PATCH v2] bpf: restore the ebpf program ID for BPF_AUDIT_UNLOAD and
PERF_BPF_EVENT_PROG_UNLOAD
config: x86_64-defconfig
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/30e779c8882f2f84869405eef26...
git remote add linux-review
https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review
Paul-Moore/bpf-restore-the-ebpf-program-ID-for-BPF_AUDIT_UNLOAD-and-PERF_BPF_EVENT_PROG_UNLOAD/20221224-025703
git checkout 30e779c8882f2f84869405eef26e37785a1849ac
# save the config file
mkdir build_dir && cp config build_dir/.config
make W=1 O=build_dir ARCH=x86_64 olddefconfig
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash
If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from kernel/bpf/core.c:35:
include/linux/bpf_verifier.h: In function 'bpf_trampoline_compute_key':
> include/linux/bpf_verifier.h:627:30: error: implicit declaration
of function 'bpf_prog_get_id'; did you mean 'bpf_prog_get_ok'?
[-Werror=implicit-function-declaration]
627 | return
((u64)bpf_prog_get_id(tgt_prog) << 32) | btf_id;
| ^~~~~~~~~~~~~~~
| bpf_prog_get_ok
kernel/bpf/core.c: At top level:
kernel/bpf/core.c:1632:12: warning: no previous prototype for
'bpf_probe_read_kernel' [-Wmissing-prototypes]
1632 | u64 __weak bpf_probe_read_kernel(void *dst, u32 size, const void *unsafe_ptr)
| ^~~~~~~~~~~~~~~~~~~~~
kernel/bpf/core.c:2071:6: warning: no previous prototype for
'bpf_patch_call_args' [-Wmissing-prototypes]
2071 | void bpf_patch_call_args(struct bpf_insn *insn, u32 stack_depth)
| ^~~~~~~~~~~~~~~~~~~
cc1: some warnings being treated as errors
--
net/core/dev.c: In function 'dev_xdp_prog_id':
> net/core/dev.c:9063:23: error: implicit declaration of function
'bpf_prog_get_id'; did you mean 'bpf_prog_get_ok'?
[-Werror=implicit-function-declaration]
9063 | return prog ?
bpf_prog_get_id(prog) : 0;
| ^~~~~~~~~~~~~~~
| bpf_prog_get_ok
cc1: some warnings being treated as errors
--
net/core/rtnetlink.c: In function 'rtnl_xdp_prog_skb':
> net/core/rtnetlink.c:1468:16: error: implicit declaration of
function 'bpf_prog_get_id'; did you mean 'bpf_prog_get_ok'?
[-Werror=implicit-function-declaration]
1468 | return
bpf_prog_get_id(generic_xdp_prog);
| ^~~~~~~~~~~~~~~
| bpf_prog_get_ok
cc1: some warnings being treated as errors
--
In file included from net/core/filter.c:21:
include/linux/bpf_verifier.h: In function 'bpf_trampoline_compute_key':
> include/linux/bpf_verifier.h:627:30: error: implicit declaration
of function 'bpf_prog_get_id'; did you mean 'bpf_prog_get_ok'?
[-Werror=implicit-function-declaration]
627 | return
((u64)bpf_prog_get_id(tgt_prog) << 32) | btf_id;
| ^~~~~~~~~~~~~~~
| bpf_prog_get_ok
cc1: some warnings being treated as errors
vim +627 include/linux/bpf_verifier.h
610
611 int check_ptr_off_reg(struct bpf_verifier_env *env,
612 const struct bpf_reg_state *reg, int regno);
613 int check_func_arg_reg_off(struct bpf_verifier_env *env,
614 const struct bpf_reg_state *reg, int regno,
615 enum bpf_arg_type arg_type);
616 int check_mem_reg(struct bpf_verifier_env *env, struct bpf_reg_state *reg,
617 u32 regno, u32 mem_size);
618 struct bpf_call_arg_meta;
619 int process_dynptr_func(struct bpf_verifier_env *env, int regno,
620 enum bpf_arg_type arg_type, struct bpf_call_arg_meta *meta);
621
622 /* this lives here instead of in bpf.h because it needs to dereference tgt_prog */
623 static inline u64 bpf_trampoline_compute_key(const struct bpf_prog *tgt_prog,
624 struct btf *btf, u32 btf_id)
625 {
626 if (tgt_prog)
627 return ((u64)bpf_prog_get_id(tgt_prog) << 32) | btf_id;
628 else
629 return ((u64)btf_obj_id(btf) << 32) | 0x80000000 | btf_id;
630 }
631
--
0-DAY CI Kernel Test Service
https://01.org/lkp