Re: [kbuild-all] Re: [PATCH v2 6/9] KVM: arm64: Detect and handle hypervisor stack overflows

From: Ard Biesheuvel
Date: Wed Feb 23 2022 - 07:57:23 EST


On Wed, 23 Feb 2022 at 13:54, Marc Zyngier <maz@xxxxxxxxxx> wrote:
>
> On 2022-02-23 12:34, Philip Li wrote:
> > On Wed, Feb 23, 2022 at 09:16:59AM +0000, Marc Zyngier wrote:
> >> On Wed, 23 Feb 2022 09:05:18 +0000,
> >> kernel test robot <lkp@xxxxxxxxx> wrote:
> >> >
> >> > Hi Kalesh,
> >> >
> >> > Thank you for the patch! Perhaps something to improve:
> >> >
> >> > [auto build test WARNING on cfb92440ee71adcc2105b0890bb01ac3cddb8507]
> >> >
> >> > url: https://github.com/0day-ci/linux/commits/Kalesh-Singh/KVM-arm64-Hypervisor-stack-enhancements/20220223-010522
> >> > base: cfb92440ee71adcc2105b0890bb01ac3cddb8507
> >> > config: arm64-randconfig-r011-20220221 (https://download.01.org/0day-ci/archive/20220223/202202231727.L621fVgD-lkp@xxxxxxxxx/config)
> >> > compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e)
> >> > 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 arm64 cross compiling tool for clang build
> >> > # apt-get install binutils-aarch64-linux-gnu
> >> > # https://github.com/0day-ci/linux/commit/7fe99fd40f7c4b2973218045ca5b9c9160524db1
> >> > git remote add linux-review https://github.com/0day-ci/linux
> >> > git fetch --no-tags linux-review Kalesh-Singh/KVM-arm64-Hypervisor-stack-enhancements/20220223-010522
> >> > git checkout 7fe99fd40f7c4b2973218045ca5b9c9160524db1
> >> > # save the config file to linux build tree
> >> > mkdir build_dir
> >> > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm64 SHELL=/bin/bash arch/arm64/
> >> >
> >> > If you fix the issue, kindly add following tag as appropriate
> >> > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> >> >
> >> > All warnings (new ones prefixed by >>):
> >> >
> >> > include/linux/stddef.h:8:14: note: expanded from macro 'NULL'
> >> > #define NULL ((void *)0)
> >> > ^~~~~~~~~~~
> >> > arch/arm64/kvm/hyp/nvhe/switch.c:200:27: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides]
> >> > [ESR_ELx_EC_FP_ASIMD] = kvm_hyp_handle_fpsimd,
> >> > ^~~~~~~~~~~~~~~~~~~~~
> >> > arch/arm64/kvm/hyp/nvhe/switch.c:196:28: note: previous initialization is here
> >> > [0 ... ESR_ELx_EC_MAX] = NULL,
> >> > ^~~~
> >> > include/linux/stddef.h:8:14: note: expanded from macro 'NULL'
> >> > #define NULL ((void *)0)
> >> > ^~~~~~~~~~~
> >>
> >> Kalesh, please ignore this nonsense. There may be things to improve,
> >> but this is *NOT* one of them.
> >>
> >> These reports are pretty useless, and just lead people to ignore real
> >> bug reports.
> >
> > Hi Kalesh, sorry there're some irrelevant issues mixed in the report,
> > kindly ignore them. And the valuable ones are the new ones that
> > prefixed by >>, as the below one in original report.
> >
> >>> arch/arm64/kvm/hyp/nvhe/switch.c:372:17: warning: no previous
> >>> prototype for function 'hyp_panic_bad_stack' [-Wmissing-prototypes]
> > void __noreturn hyp_panic_bad_stack(void)
> > ^
>
> This is only called from assembly code, so a prototype wouldn't bring
> much.
>

Should probably be marked as 'asmlinkage' then. I've suggested many
times already that this bogus diagnostic should either be disabled, or
disregard 'asmlinkage' symbols.