All of lore.kernel.org
 help / color / mirror / Atom feed
* [jolsa-perf:bpf/tramp_22 20/21] kernel/bpf/syscall.c:3306:7: error: call to undeclared function 'bpf_tramp_id_alloc'; ISO C99 and later do not support implicit function declarations
@ 2022-07-06 21:35 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-07-06 21:35 UTC (permalink / raw)
  To: Jiri Olsa; +Cc: llvm, kbuild-all, linux-kernel

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git bpf/tramp_22
head:   1d891c46bb689a24985cea58f4eddb053d6b1331
commit: 70d8bfe245ee929757e1dcdf280f9e27786047a9 [20/21] bpf: Add support for tracing multi link
config: x86_64-randconfig-a012 (https://download.01.org/0day-ci/archive/20220707/202207070530.sgflrE6n-lkp@intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project f553287b588916de09c66e3e32bf75e5060f967f)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git/commit/?id=70d8bfe245ee929757e1dcdf280f9e27786047a9
        git remote add jolsa-perf https://git.kernel.org/pub/scm/linux/kernel/git/jolsa/perf.git
        git fetch --no-tags jolsa-perf bpf/tramp_22
        git checkout 70d8bfe245ee929757e1dcdf280f9e27786047a9
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross 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@intel.com>

All errors (new ones prefixed by >>):

   kernel/bpf/syscall.c:3128:26: error: field has incomplete type 'struct bpf_tramp_attach'
           struct bpf_tramp_attach attach;
                                   ^
   kernel/bpf/syscall.c:3128:9: note: forward declaration of 'struct bpf_tramp_attach'
           struct bpf_tramp_attach attach;
                  ^
   kernel/bpf/syscall.c:3136:15: error: call to undeclared function 'bpf_trampoline_detach'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
           WARN_ON_ONCE(bpf_trampoline_detach(&tr_link->attach));
                        ^
   kernel/bpf/syscall.c:3136:15: note: did you mean 'bpf_trampoline_get'?
   include/linux/bpf.h:993:38: note: 'bpf_trampoline_get' declared here
   static inline struct bpf_trampoline *bpf_trampoline_get(u64 key,
                                        ^
>> kernel/bpf/syscall.c:3306:7: error: call to undeclared function 'bpf_tramp_id_alloc'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
           id = bpf_tramp_id_alloc(cnt);
                ^
   kernel/bpf/syscall.c:3306:5: warning: incompatible integer to pointer conversion assigning to 'struct bpf_tramp_id *' from 'int' [-Wint-conversion]
           id = bpf_tramp_id_alloc(cnt);
              ^ ~~~~~~~~~~~~~~~~~~~~~~~
   kernel/bpf/syscall.c:3347:8: error: call to undeclared function 'bpf_trampoline_attach'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
           err = bpf_trampoline_attach(&link->attach);
                 ^
   1 warning and 4 errors generated.


vim +/bpf_tramp_id_alloc +3306 kernel/bpf/syscall.c

  3290	
  3291	static int bpf_tracing_multi_attach(struct bpf_prog *prog,
  3292					    const union bpf_attr *attr)
  3293	{
  3294		void __user *uids = u64_to_user_ptr(attr->link_create.tracing_multi.btf_ids);
  3295		u32 cnt_size, cnt = attr->link_create.tracing_multi.btf_ids_cnt;
  3296		struct bpf_tracing_multi_link *link = NULL;
  3297		struct bpf_link_primer link_primer;
  3298		struct bpf_tramp_id *id = NULL;
  3299		int err = -EINVAL;
  3300	
  3301		if (check_multi_prog_type(prog))
  3302			return -EINVAL;
  3303		if (!cnt || !uids)
  3304			return -EINVAL;
  3305	
> 3306		id = bpf_tramp_id_alloc(cnt);
  3307		if (!id)
  3308			return -ENOMEM;
  3309	
  3310		err = -EFAULT;
  3311		cnt_size = cnt * sizeof(id->id[0]);
  3312		if (copy_from_user(id->id, uids, cnt_size))
  3313			goto out_free_id;
  3314	
  3315		id->cnt = cnt;
  3316		id->obj_id = btf_obj_id(prog->aux->attach_btf);
  3317	
  3318		/* Sort user provided BTF ids, so we can use memcmp
  3319		 * and bsearch on top of it later.
  3320		 */
  3321		sort(id->id, cnt, sizeof(u32), btf_ids_cmp, NULL);
  3322	
  3323		err = bpf_tramp_id_resolve(id, prog);
  3324		if (err)
  3325			goto out_free_id;
  3326	
  3327		link = kzalloc(sizeof(*link), GFP_KERNEL);
  3328		if (!link) {
  3329			err = -ENOMEM;
  3330			goto out_free_id;
  3331		}
  3332	
  3333		bpf_link_init(&link->link, BPF_LINK_TYPE_TRACING_MULTI,
  3334			      &bpf_tracing_multi_link_lops, prog);
  3335		link->attach_type = prog->expected_attach_type;
  3336	
  3337		err = bpf_link_prime(&link->link, &link_primer);
  3338		if (err) {
  3339			kfree(link);
  3340			goto out_free_id;
  3341		}
  3342	
  3343		link->attach.id = id;
  3344		link->attach.tp.cookie = 0;
  3345		link->attach.tp.prog = prog;
  3346	
  3347		err = bpf_trampoline_attach(&link->attach);
  3348		if (err) {
  3349			bpf_link_cleanup(&link_primer);
  3350			goto out_free_id;
  3351		}
  3352		return bpf_link_settle(&link_primer);
  3353	out_free_id:
  3354		kfree(id);
  3355		return err;
  3356	}
  3357	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2022-07-06 21:36 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-07-06 21:35 [jolsa-perf:bpf/tramp_22 20/21] kernel/bpf/syscall.c:3306:7: error: call to undeclared function 'bpf_tramp_id_alloc'; ISO C99 and later do not support implicit function declarations kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.