Hi Yonghong, I love your patch! Yet something to improve: [auto build test ERROR on next-20210318] [cannot apply to bpf-next/master bpf/master v5.12-rc3 v5.12-rc2 v5.12-rc1 v5.12-rc3] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Yonghong-Song/bpf-fix-NULL-pointer-dereference-in/20210319-082140 base: ba5b053ab3ac674b91a6669086139819359a5e6e config: arm-randconfig-r014-20210318 (attached as .config) compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project fcc1ce00931751ac02498986feb37744e9ace8de) 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 # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://github.com/0day-ci/linux/commit/4d3510a809c631ed53b78f7baa50fd4cc2730587 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Yonghong-Song/bpf-fix-NULL-pointer-dereference-in/20210319-082140 git checkout 4d3510a809c631ed53b78f7baa50fd4cc2730587 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): >> net/bpf/test_run.c:109:7: error: assigning to 'int' from incompatible type 'void' ret = bpf_cgroup_storage_set(storage); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> net/bpf/test_run.c:118:3: error: implicit declaration of function 'bpf_cgroup_storage_unset' [-Werror,-Wimplicit-function-declaration] bpf_cgroup_storage_unset(); ^ net/bpf/test_run.c:118:3: note: did you mean 'bpf_cgroup_storage_set'? include/linux/bpf-cgroup.h:492:20: note: 'bpf_cgroup_storage_set' declared here static inline void bpf_cgroup_storage_set( ^ net/bpf/test_run.c:167:14: warning: no previous prototype for function 'bpf_fentry_test1' [-Wmissing-prototypes] int noinline bpf_fentry_test1(int a) ^ net/bpf/test_run.c:167:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int noinline bpf_fentry_test1(int a) ^ static net/bpf/test_run.c:172:14: warning: no previous prototype for function 'bpf_fentry_test2' [-Wmissing-prototypes] int noinline bpf_fentry_test2(int a, u64 b) ^ net/bpf/test_run.c:172:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int noinline bpf_fentry_test2(int a, u64 b) ^ static net/bpf/test_run.c:177:14: warning: no previous prototype for function 'bpf_fentry_test3' [-Wmissing-prototypes] int noinline bpf_fentry_test3(char a, int b, u64 c) ^ net/bpf/test_run.c:177:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int noinline bpf_fentry_test3(char a, int b, u64 c) ^ static net/bpf/test_run.c:182:14: warning: no previous prototype for function 'bpf_fentry_test4' [-Wmissing-prototypes] int noinline bpf_fentry_test4(void *a, char b, int c, u64 d) ^ net/bpf/test_run.c:182:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int noinline bpf_fentry_test4(void *a, char b, int c, u64 d) ^ static net/bpf/test_run.c:187:14: warning: no previous prototype for function 'bpf_fentry_test5' [-Wmissing-prototypes] int noinline bpf_fentry_test5(u64 a, void *b, short c, int d, u64 e) ^ net/bpf/test_run.c:187:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int noinline bpf_fentry_test5(u64 a, void *b, short c, int d, u64 e) ^ static net/bpf/test_run.c:192:14: warning: no previous prototype for function 'bpf_fentry_test6' [-Wmissing-prototypes] int noinline bpf_fentry_test6(u64 a, void *b, short c, int d, void *e, u64 f) ^ net/bpf/test_run.c:192:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int noinline bpf_fentry_test6(u64 a, void *b, short c, int d, void *e, u64 f) ^ static net/bpf/test_run.c:201:14: warning: no previous prototype for function 'bpf_fentry_test7' [-Wmissing-prototypes] int noinline bpf_fentry_test7(struct bpf_fentry_test_t *arg) ^ net/bpf/test_run.c:201:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int noinline bpf_fentry_test7(struct bpf_fentry_test_t *arg) ^ static net/bpf/test_run.c:206:14: warning: no previous prototype for function 'bpf_fentry_test8' [-Wmissing-prototypes] int noinline bpf_fentry_test8(struct bpf_fentry_test_t *arg) ^ net/bpf/test_run.c:206:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int noinline bpf_fentry_test8(struct bpf_fentry_test_t *arg) ^ static net/bpf/test_run.c:211:14: warning: no previous prototype for function 'bpf_modify_return_test' [-Wmissing-prototypes] int noinline bpf_modify_return_test(int a, int *b) ^ net/bpf/test_run.c:211:1: note: declare 'static' if the function is not intended to be used outside of this translation unit int noinline bpf_modify_return_test(int a, int *b) ^ static 9 warnings and 2 errors generated. vim +109 net/bpf/test_run.c 85 86 static int bpf_test_run(struct bpf_prog *prog, void *ctx, u32 repeat, 87 u32 *retval, u32 *time, bool xdp) 88 { 89 struct bpf_cgroup_storage *storage[MAX_BPF_CGROUP_STORAGE_TYPE] = { NULL }; 90 struct bpf_test_timer t = { NO_MIGRATE }; 91 enum bpf_cgroup_storage_type stype; 92 int ret; 93 94 for_each_cgroup_storage_type(stype) { 95 storage[stype] = bpf_cgroup_storage_alloc(prog, stype); 96 if (IS_ERR(storage[stype])) { 97 storage[stype] = NULL; 98 for_each_cgroup_storage_type(stype) 99 bpf_cgroup_storage_free(storage[stype]); 100 return -ENOMEM; 101 } 102 } 103 104 if (!repeat) 105 repeat = 1; 106 107 bpf_test_timer_enter(&t); 108 do { > 109 ret = bpf_cgroup_storage_set(storage); 110 if (ret) 111 break; 112 113 if (xdp) 114 *retval = bpf_prog_run_xdp(prog, ctx); 115 else 116 *retval = BPF_PROG_RUN(prog, ctx); 117 > 118 bpf_cgroup_storage_unset(); 119 } while (bpf_test_timer_continue(&t, repeat, &ret, time)); 120 bpf_test_timer_leave(&t); 121 122 for_each_cgroup_storage_type(stype) 123 bpf_cgroup_storage_free(storage[stype]); 124 125 return ret; 126 } 127 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx
Attachment:
.config.gz
Description: application/gzip