Hi Maxim,
Thank you for the patch! Perhaps something to improve:
[auto build test WARNING on bpf-next/master]
url: https://github.com/intel-lab-lkp/linux/commits/Maxim-Mikityanskiy/bpf-Use-ip... base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master config: arc-randconfig-r036-20220422 (https://download.01.org/0day-ci/archive/20220423/202204231646.yQjLArUK-lkp@i...) compiler: arc-elf-gcc (GCC) 11.2.0 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 # https://github.com/intel-lab-lkp/linux/commit/e374c2f19a674b586212d155ecb708... git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Maxim-Mikityanskiy/bpf-Use-ipv6_only_sock-in-bpf_tcp_gen_syncookie/20220423-022511 git checkout e374c2f19a674b586212d155ecb708aaa86dcd2c # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross W=1 O=build_dir ARCH=arc SHELL=/bin/bash kernel/bpf/
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot lkp@intel.com
All warnings (new ones prefixed by >>):
kernel/bpf/verifier.c: In function 'check_helper_call':
kernel/bpf/verifier.c:5954:49: warning: array subscript 5 is above array bounds of 'const enum bpf_arg_type[5]' [-Warray-bounds]
5954 | return arg_type_is_mem_size(fn->arg_type[arg + 1]) || fn->arg_size[arg]; | ~~~~~~~~~~~~^~~~~~~~~ In file included from include/linux/bpf-cgroup.h:5, from kernel/bpf/verifier.c:7: include/linux/bpf.h:456:35: note: while referencing 'arg_type' 456 | enum bpf_arg_type arg_type[5]; | ^~~~~~~~ kernel/bpf/verifier.c:5952:57: warning: array subscript 5 is above array bounds of 'const enum bpf_arg_type[5]' [-Warray-bounds] 5952 | return arg_type_is_mem_size(fn->arg_type[arg + 1]) == | ~~~~~~~~~~~~^~~~~~~~~ In file included from include/linux/bpf-cgroup.h:5, from kernel/bpf/verifier.c:7: include/linux/bpf.h:456:35: note: while referencing 'arg_type' 456 | enum bpf_arg_type arg_type[5]; | ^~~~~~~~
vim +5954 kernel/bpf/verifier.c
5948 5949 static bool check_args_pair_invalid(const struct bpf_func_proto *fn, int arg) 5950 { 5951 if (arg_type_is_mem_ptr(fn->arg_type[arg])) 5952 return arg_type_is_mem_size(fn->arg_type[arg + 1]) == 5953 !!fn->arg_size[arg];
5954 return arg_type_is_mem_size(fn->arg_type[arg + 1]) || fn->arg_size[arg];
5955 } 5956