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 <l...@intel.com>

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-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to