Hi Dave, kernel test robot noticed the following build warnings: [auto build test WARNING on bpf-next/master] url: https://github.com/intel-lab-lkp/linux/commits/Dave-Marchevsky/bpf-Fix-btf_get_field_type-to-fail-for-multiple-bpf_refcount-fields/20231024-060227 base: https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git master patch link: https://lore.kernel.org/r/20231023220030.2556229-4-davemarchevsky%40fb.com patch subject: [PATCH v1 bpf-next 3/4] btf: Descend into structs and arrays during special field search config: x86_64-rhel-8.3-rust (https://download.01.org/0day-ci/archive/20231026/202310260952.C9Gb9Avi-lkp@xxxxxxxxx/config) compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20231026/202310260952.C9Gb9Avi-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202310260952.C9Gb9Avi-lkp@xxxxxxxxx/ All warnings (new ones prefixed by >>): >> kernel/bpf/btf.c:3634:70: warning: variable 'off' is uninitialized when used here [-Wuninitialized] ret = btf_find_struct_field(btf, elem_type, srch, array_field_off + off, rec); ^~~ kernel/bpf/btf.c:3625:15: note: initialize the variable 'off' to silence this warning u32 i, j, off, nelems; ^ = 0 1 warning generated. vim +/off +3634 kernel/bpf/btf.c 3616 3617 static int btf_flatten_array_field(const struct btf *btf, 3618 const struct btf_type *t, 3619 struct btf_field_info_search *srch, 3620 int array_field_off, int rec) 3621 { 3622 int ret, start_idx, elem_field_cnt; 3623 const struct btf_type *elem_type; 3624 struct btf_field_info *info; 3625 u32 i, j, off, nelems; 3626 3627 if (!btf_type_is_array(t)) 3628 return -EINVAL; 3629 nelems = __multi_dim_elem_type_nelems(btf, t, &elem_type); 3630 if (!nelems || !__btf_type_is_struct(elem_type)) 3631 return srch->idx; 3632 3633 start_idx = srch->idx; > 3634 ret = btf_find_struct_field(btf, elem_type, srch, array_field_off + off, rec); 3635 if (ret < 0) 3636 return ret; 3637 3638 /* No btf_field_info's added */ 3639 if (srch->idx == start_idx) 3640 return srch->idx; 3641 3642 elem_field_cnt = srch->idx - start_idx; 3643 info = __next_field_infos(srch, elem_field_cnt * (nelems - 1)); 3644 if (IS_ERR_OR_NULL(info)) 3645 return PTR_ERR(info); 3646 3647 /* Array elems after the first can copy first elem's btf_field_infos 3648 * and adjust offset 3649 */ 3650 for (i = 1; i < nelems; i++) { 3651 memcpy(info, &srch->infos[start_idx], 3652 elem_field_cnt * sizeof(struct btf_field_info)); 3653 for (j = 0; j < elem_field_cnt; j++) { 3654 info->off += (i * elem_type->size); 3655 info++; 3656 } 3657 } 3658 return srch->idx; 3659 } 3660 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki