Re: [PATCH v2 2/9] KVM: arm64: Add a buffer that can pass UBSan data from hyp/nVHE to kernel

From: kernel test robot
Date: Fri Jan 15 2021 - 07:46:46 EST


Hi Elena,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on arm64/for-next/core]
[cannot apply to kvmarm/next soc/for-next arm/for-next xlnx/master v5.11-rc3 next-20210115]
[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/Elena-Petrova/UBSan-Enablement-for-hyp-nVHE-code/20210115-112509
base: https://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git for-next/core
config: arm64-allyesconfig (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.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/0day-ci/linux/commit/aba3219bbab3bb5c7f037fe7b6c6c783942bc954
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Elena-Petrova/UBSan-Enablement-for-hyp-nVHE-code/20210115-112509
git checkout aba3219bbab3bb5c7f037fe7b6c6c783942bc954
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=arm64

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

In file included from arch/arm64/kvm/hyp/nvhe/ubsan.c:9:
>> arch/arm64/kvm/hyp/nvhe/ubsan.c:18:48: error: conflicting types for 'kvm_ubsan_buffer'
18 | DEFINE_KVM_DEBUG_BUFFER(struct kvm_ubsan_info, kvm_ubsan_buffer,
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:95:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION'
95 | __PCPU_ATTRS(sec) __weak __typeof__(type) name
| ^~~~
arch/arm64/include/asm/kvm_debug_buffer.h:14:2: note: in expansion of macro 'DEFINE_PER_CPU'
14 | DEFINE_PER_CPU(type_name, buffer_name)[size]; \
| ^~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:18:1: note: in expansion of macro 'DEFINE_KVM_DEBUG_BUFFER'
18 | DEFINE_KVM_DEBUG_BUFFER(struct kvm_ubsan_info, kvm_ubsan_buffer,
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:18:48: note: previous declaration of 'kvm_ubsan_buffer' was here
18 | DEFINE_KVM_DEBUG_BUFFER(struct kvm_ubsan_info, kvm_ubsan_buffer,
| ^~~~~~~~~~~~~~~~
include/linux/percpu-defs.h:94:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION'
94 | extern __PCPU_ATTRS(sec) __typeof__(type) name; \
| ^~~~
arch/arm64/include/asm/kvm_debug_buffer.h:14:2: note: in expansion of macro 'DEFINE_PER_CPU'
14 | DEFINE_PER_CPU(type_name, buffer_name)[size]; \
| ^~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:18:1: note: in expansion of macro 'DEFINE_KVM_DEBUG_BUFFER'
18 | DEFINE_KVM_DEBUG_BUFFER(struct kvm_ubsan_info, kvm_ubsan_buffer,
| ^~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:33:6: warning: no previous prototype for '__ubsan_handle_add_overflow' [-Wmissing-prototypes]
33 | void __ubsan_handle_add_overflow(void *_data, void *lhs, void *rhs) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:35:6: warning: no previous prototype for '__ubsan_handle_sub_overflow' [-Wmissing-prototypes]
35 | void __ubsan_handle_sub_overflow(void *_data, void *lhs, void *rhs) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:37:6: warning: no previous prototype for '__ubsan_handle_mul_overflow' [-Wmissing-prototypes]
37 | void __ubsan_handle_mul_overflow(void *_data, void *lhs, void *rhs) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:39:6: warning: no previous prototype for '__ubsan_handle_negate_overflow' [-Wmissing-prototypes]
39 | void __ubsan_handle_negate_overflow(void *_data, void *old_val) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:41:6: warning: no previous prototype for '__ubsan_handle_divrem_overflow' [-Wmissing-prototypes]
41 | void __ubsan_handle_divrem_overflow(void *_data, void *lhs, void *rhs) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:43:6: warning: no previous prototype for '__ubsan_handle_type_mismatch' [-Wmissing-prototypes]
43 | void __ubsan_handle_type_mismatch(struct type_mismatch_data *data, void *ptr) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:45:6: warning: no previous prototype for '__ubsan_handle_type_mismatch_v1' [-Wmissing-prototypes]
45 | void __ubsan_handle_type_mismatch_v1(void *_data, void *ptr) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:47:6: warning: no previous prototype for '__ubsan_handle_out_of_bounds' [-Wmissing-prototypes]
47 | void __ubsan_handle_out_of_bounds(void *_data, void *index) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:49:6: warning: no previous prototype for '__ubsan_handle_shift_out_of_bounds' [-Wmissing-prototypes]
49 | void __ubsan_handle_shift_out_of_bounds(void *_data, void *lhs, void *rhs) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:51:6: warning: no previous prototype for '__ubsan_handle_builtin_unreachable' [-Wmissing-prototypes]
51 | void __ubsan_handle_builtin_unreachable(void *_data) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/arm64/kvm/hyp/nvhe/ubsan.c:53:6: warning: no previous prototype for '__ubsan_handle_load_invalid_value' [-Wmissing-prototypes]
53 | void __ubsan_handle_load_invalid_value(void *_data, void *val) {}
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/kvm_ubsan_buffer +18 arch/arm64/kvm/hyp/nvhe/ubsan.c

> 9 #include <linux/percpu-defs.h>
10 #include <linux/kvm_host.h>
11 #include <asm/kvm_arm.h>
12 #include <asm/kvm_asm.h>
13 #include <asm/kvm_ubsan.h>
14 #include <asm/kvm_debug_buffer.h>
15 #include <kvm/arm_pmu.h>
16 #include <ubsan.h>
17
> 18 DEFINE_KVM_DEBUG_BUFFER(struct kvm_ubsan_info, kvm_ubsan_buffer,
19 kvm_ubsan_buff_wr_ind, KVM_UBSAN_BUFFER_SIZE);
20

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx

Attachment: .config.gz
Description: application/gzip