Hi Andrii, I love your patch! Yet something to improve: [auto build test ERROR on bpf-next/master] [also build test ERROR on bpf/master cgroup/for-next net/master net-next/master v5.7-rc3 next-20200428] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system. BTW, we also suggest to use '--base' option to specify the base tree in git format-patch, please see https://stackoverflow.com/a/37406982] url: https://github.com/0day-ci/linux/commits/Andrii-Nakryiko/bpf_link-observability-APIs/20200428-215720 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master config: sh-randconfig-a001-20200428 (attached as .config) compiler: sh4-linux-gcc (GCC) 9.3.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day GCC_VERSION=9.3.0 make.cross ARCH=sh If you fix the issue, kindly add following tag as appropriate Reported-by: kbuild test robot All errors (new ones prefixed by >>): sh4-linux-ld: kernel/bpf/syscall.o: in function `bpf_raw_tp_link_fill_link_info': >> kernel/bpf/syscall.c:2570: undefined reference to `__get_user_unknown' vim +2570 kernel/bpf/syscall.c 2547 2548 static int bpf_raw_tp_link_fill_link_info(const struct bpf_link *link, 2549 struct bpf_link_info *info, 2550 const struct bpf_link_info *uinfo, 2551 u32 info_len) 2552 { 2553 struct bpf_raw_tp_link *raw_tp_link = 2554 container_of(link, struct bpf_raw_tp_link, link); 2555 u64 ubuf_ptr; 2556 char __user *ubuf = u64_to_user_ptr(uinfo->raw_tracepoint.tp_name); 2557 const char *tp_name = raw_tp_link->btp->tp->name; 2558 size_t tp_len; 2559 u32 ulen; 2560 2561 if (get_user(ulen, &uinfo->raw_tracepoint.tp_name_len)) 2562 return -EFAULT; 2563 if (get_user(ubuf_ptr, &uinfo->raw_tracepoint.tp_name)) 2564 return -EFAULT; 2565 ubuf = u64_to_user_ptr(ubuf_ptr); 2566 2567 if (ulen && !ubuf) 2568 return -EINVAL; 2569 if (!ubuf) > 2570 return 0; 2571 2572 tp_len = strlen(raw_tp_link->btp->tp->name); 2573 info->raw_tracepoint.tp_name_len = tp_len + 1; 2574 info->raw_tracepoint.tp_name = (u64)(unsigned long)ubuf; 2575 2576 if (ulen >= tp_len + 1) { 2577 if (copy_to_user(ubuf, tp_name, tp_len + 1)) 2578 return -EFAULT; 2579 } else { 2580 char zero = '\0'; 2581 2582 if (copy_to_user(ubuf, tp_name, ulen - 1)) 2583 return -EFAULT; 2584 if (put_user(zero, ubuf + ulen - 1)) 2585 return -EFAULT; 2586 return -ENOSPC; 2587 } 2588 2589 return 0; 2590 } 2591 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org