arch/arm64/kvm/pvtime.c:27:25: sparse: sparse: cast to restricted __le64

From: kernel test robot
Date: Sat Dec 26 2020 - 14:09:03 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: f838f8d2b694cf9d524dc4423e9dd2db13892f3f
commit: 53f985584e3c2ebe5f2455530fbf87a001528db8 KVM: arm64: pvtime: Fix stolen time accounting across migration
date: 4 months ago
config: arm64-randconfig-s032-20201223 (attached as .config)
compiler: aarch64-linux-gcc (GCC) 9.3.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# apt-get install sparse
# sparse version: v0.6.3-184-g1b896707-dirty
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=53f985584e3c2ebe5f2455530fbf87a001528db8
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 53f985584e3c2ebe5f2455530fbf87a001528db8
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=arm64

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


"sparse warnings: (new ones prefixed by >>)"
>> arch/arm64/kvm/pvtime.c:27:25: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/pvtime.c:27:25: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/pvtime.c:27:25: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/pvtime.c:27:25: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/pvtime.c:27:25: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/pvtime.c:27:25: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/pvtime.c:27:25: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/pvtime.c:27:25: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/pvtime.c:27:25: sparse: sparse: cast to restricted __le64
>> arch/arm64/kvm/pvtime.c:27:25: sparse: sparse: cast to restricted __le64

vim +27 arch/arm64/kvm/pvtime.c

12
13 void kvm_update_stolen_time(struct kvm_vcpu *vcpu)
14 {
15 struct kvm *kvm = vcpu->kvm;
16 u64 base = vcpu->arch.steal.base;
17 u64 last_steal = vcpu->arch.steal.last_steal;
18 u64 offset = offsetof(struct pvclock_vcpu_stolen_time, stolen_time);
19 u64 steal = 0;
20 int idx;
21
22 if (base == GPA_INVALID)
23 return;
24
25 idx = srcu_read_lock(&kvm->srcu);
26 if (!kvm_get_guest(kvm, base + offset, steal)) {
> 27 steal = le64_to_cpu(steal);
28 vcpu->arch.steal.last_steal = READ_ONCE(current->sched_info.run_delay);
29 steal += vcpu->arch.steal.last_steal - last_steal;
30 kvm_put_guest(kvm, base + offset, cpu_to_le64(steal));
31 }
32 srcu_read_unlock(&kvm->srcu, idx);
33 }
34

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

Attachment: .config.gz
Description: application/gzip