Hi Ard,
First bad commit (maybe != root cause):
tree:
git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git kvm-trng
head: ce24e6d7812bdc252275c33141fef8d8ec065b9c
commit: 133ead68041bbb2bef5dba91fdc8c330d1ab50e5 [3/8] arm64: kvm: build cloned NVHE
objects in the nvhe/ build tree
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://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/commit/?id...
git remote add ardb
git://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git
git fetch --no-tags ardb kvm-trng
git checkout 133ead68041bbb2bef5dba91fdc8c330d1ab50e5
# 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(a)intel.com>
All warnings (new ones prefixed by >>):
> arch/arm64/kvm/hyp/aarch32.c:97: warning: expecting prototype for
adjust_itstate(). Prototype was for kvm_adjust_itstate() instead
> arch/arm64/kvm/hyp/aarch32.c:127: warning: expecting prototype for kvm_skip_instr().
Prototype was for kvm_skip_instr32() instead
vim +97 arch/arm64/kvm/hyp/aarch32.c
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 85
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 86 /**
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 87 *
adjust_itstate - adjust ITSTATE when emulating instructions in IT-block
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 88 * @vcpu: The
VCPU pointer
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 89 *
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 90 * When
exceptions occur while instructions are executed in Thumb IF-THEN
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 91 * blocks, the
ITSTATE field of the CPSR is not advanced (updated), so we have
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 92 * to do this
little bit of work manually. The fields map like this:
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 93 *
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 94 * IT[7:0]
-> CPSR[26:25],CPSR[15:10]
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 95 */
c50cb04303cb88 arch/arm64/kvm/hyp/aarch32.c David Brazdil 2020-06-25 96 static void
kvm_adjust_itstate(struct kvm_vcpu *vcpu)
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 @97 {
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 98 unsigned long
itbits, cond;
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 99 unsigned long
cpsr = *vcpu_cpsr(vcpu);
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 100 bool is_arm =
!(cpsr & PSR_AA32_T_BIT);
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 101
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 102 if (is_arm ||
!(cpsr & PSR_AA32_IT_MASK))
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 103 return;
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 104
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 105 cond = (cpsr
& 0xe000) >> 13;
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 106 itbits = (cpsr
& 0x1c00) >> (10 - 2);
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 107 itbits |=
(cpsr & (0x3 << 25)) >> 25;
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 108
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 109 /* Perform
ITAdvance (see page A2-52 in ARM DDI 0406C) */
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 110 if ((itbits
& 0x7) == 0)
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 111 itbits = cond
= 0;
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 112 else
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 113 itbits =
(itbits << 1) & 0x1f;
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 114
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 115 cpsr &=
~PSR_AA32_IT_MASK;
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 116 cpsr |= cond
<< 13;
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 117 cpsr |=
(itbits & 0x1c) << (10 - 2);
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 118 cpsr |=
(itbits & 0x3) << 25;
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 119
*vcpu_cpsr(vcpu) = cpsr;
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 120 }
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 121
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 122 /**
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 123 *
kvm_skip_instr - skip a trapped instruction and proceed to the next
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 124 * @vcpu: The
vcpu pointer
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 125 */
6ddbc281e2aa21 arch/arm64/kvm/hyp/aarch32.c Marc Zyngier 2020-10-13 126 void
kvm_skip_instr32(struct kvm_vcpu *vcpu)
623e1528d4090b virt/kvm/arm/hyp/aarch32.c James Morse 2019-05-22 @127 {
:::::: The code at line 97 was first introduced by commit
:::::: 623e1528d4090bd1abaf93ec46f047dee9a6fb32 KVM: arm/arm64: Move cc/it checks under
hyp's Makefile to avoid instrumentation
:::::: TO: James Morse <james.morse(a)arm.com>
:::::: CC: Marc Zyngier <marc.zyngier(a)arm.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org