* [ardb:kvm-trng 3/8] arch/arm64/kvm/hyp/aarch32.c:97: warning: expecting prototype for adjust_itstate(). Prototype was for kvm_adjust_itstate() instead
@ 2021-03-23 21:42 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-03-23 21:42 UTC (permalink / raw)
To: kbuild-all
[-- Attachment #1: Type: text/plain, Size: 6327 bytes --]
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=133ead68041bbb2bef5dba91fdc8c330d1ab50e5
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@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@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@arm.com>
:::::: CC: Marc Zyngier <marc.zyngier@arm.com>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 76824 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-03-23 21:42 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-23 21:42 [ardb:kvm-trng 3/8] arch/arm64/kvm/hyp/aarch32.c:97: warning: expecting prototype for adjust_itstate(). Prototype was for kvm_adjust_itstate() instead kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.