Re: [PATCH v3 bpf-next 2/3] bpf: implement CAP_BPF
From: kbuild test robot <hidden>
Date: 2019-09-07 04:09:53
Also in:
bpf, netdev
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 <redacted> 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)) ^~~~
quoted
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))
^~~~quoted
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__) ) )
^~~~~~~~~~~~~~quoted
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
Attachments
- .config.gz [application/gzip] 29761 bytes