Hi Alexei,

I love your patch! Perhaps something to improve:

[auto build test WARNING on bpf-next/master]

url:    
https://github.com/0day-ci/linux/commits/Alexei-Starovoitov/capability-introduce-CAP_BPF-and-CAP_TRACING/20190906-215814
base:   
https://kernel.googlesource.com/pub/scm/linux/kernel/git/bpf/bpf-next.git master
config: x86_64-randconfig-c003-201935 (attached as .config)
compiler: gcc-7 (Debian 7.4.0-11) 7.4.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

   In file included from include/linux/export.h:45:0,
                    from include/linux/linkage.h:7,
                    from include/linux/kernel.h:8,
                    from include/linux/list.h:9,
                    from include/linux/timer.h:5,
                    from include/linux/workqueue.h:9,
                    from include/linux/bpf.h:9,
                    from kernel/bpf/syscall.c:4:
   kernel/bpf/syscall.c: In function 'bpf_prog_test_run':
   kernel/bpf/syscall.c:2087:6: warning: the address of 'capable_bpf_net_admin' 
will always evaluate as 'true' [-Waddress]
     if (!capable_bpf_net_admin)
         ^
   include/linux/compiler.h:58:52: note: in definition of macro '__trace_if_var'
    #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                       ^~~~
>> kernel/bpf/syscall.c:2087:2: note: in expansion of macro 'if'
     if (!capable_bpf_net_admin)
     ^~
   kernel/bpf/syscall.c:2087:6: warning: the address of 'capable_bpf_net_admin' 
will always evaluate as 'true' [-Waddress]
     if (!capable_bpf_net_admin)
         ^
   include/linux/compiler.h:58:61: note: in definition of macro '__trace_if_var'
    #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                ^~~~
>> kernel/bpf/syscall.c:2087:2: note: in expansion of macro 'if'
     if (!capable_bpf_net_admin)
     ^~
   kernel/bpf/syscall.c:2087:6: warning: the address of 'capable_bpf_net_admin' 
will always evaluate as 'true' [-Waddress]
     if (!capable_bpf_net_admin)
         ^
   include/linux/compiler.h:69:3: note: in definition of macro 
'__trace_if_value'
     (cond) ?     \
      ^~~~
   include/linux/compiler.h:56:28: note: in expansion of macro '__trace_if_var'
    #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                               ^~~~~~~~~~~~~~
>> kernel/bpf/syscall.c:2087:2: note: in expansion of macro 'if'
     if (!capable_bpf_net_admin)
     ^~

vim +/if +2087 kernel/bpf/syscall.c

  2080  
  2081  static int bpf_prog_test_run(const union bpf_attr *attr,
  2082                               union bpf_attr __user *uattr)
  2083  {
  2084          struct bpf_prog *prog;
  2085          int ret = -ENOTSUPP;
  2086  
> 2087          if (!capable_bpf_net_admin)
  2088                  /* test_run callback is available for networking progs 
only.
  2089                   * Add capable_bpf_tracing() above when tracing progs 
become runable.
  2090                   */
  2091                  return -EPERM;
  2092          if (CHECK_ATTR(BPF_PROG_TEST_RUN))
  2093                  return -EINVAL;
  2094  
  2095          if ((attr->test.ctx_size_in && !attr->test.ctx_in) ||
  2096              (!attr->test.ctx_size_in && attr->test.ctx_in))
  2097                  return -EINVAL;
  2098  
  2099          if ((attr->test.ctx_size_out && !attr->test.ctx_out) ||
  2100              (!attr->test.ctx_size_out && attr->test.ctx_out))
  2101                  return -EINVAL;
  2102  
  2103          prog = bpf_prog_get(attr->test.prog_fd);
  2104          if (IS_ERR(prog))
  2105                  return PTR_ERR(prog);
  2106  
  2107          if (prog->aux->ops->test_run)
  2108                  ret = prog->aux->ops->test_run(prog, attr, uattr);
  2109  
  2110          bpf_prog_put(prog);
  2111          return ret;
  2112  }
  2113  

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to