Re: [PATCH 23/45] KVM: Introduce kvm_check_gen()/kvm_memslots_check_gen()

From: kernel test robot

Date: Tue Nov 03 2026 - 13:07:37 EST


Hi Paolo,

kernel test robot noticed the following build errors:

[auto build test ERROR on kvm/queue]
[also build test ERROR on kvm/next linus/master next-20261030]
[cannot apply to mst-vhost/linux-next kvm/linux-next v7.3]
[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#_base_tree_information]

url: https://github.com/intel-lab-lkp/linux/commits/Paolo-Bonzini/KVM-nVMX-nSVM-check-unconditionally-whether-CR3-is-valid/20261102-124045
base: https://git.kernel.org/pub/scm/virt/kvm/kvm.git queue
patch link: https://lore.kernel.org/r/20261102174512.8903-7-pbonzini%40redhat.com
patch subject: [PATCH 23/45] KVM: Introduce kvm_check_gen()/kvm_memslots_check_gen()
config: loongarch-defconfig (https://download.01.org/0day-ci/archive/20261104/202611040108.LHPSqkKE-lkp@xxxxxxxxx/config)
compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 65303e81f481bbfe386b8596423f94c43198ba94)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261104/202611040108.LHPSqkKE-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202611040108.LHPSqkKE-lkp@xxxxxxxxx/

All errors (new ones prefixed by >>):

>> arch/loongarch/kvm/vcpu.c:167:53: error: expected ')'
167 | kvm_is_error_hva(ghc->hva) || !ghc->memslot) {
| ^
arch/loongarch/kvm/vcpu.c:166:5: note: to match this '('
166 | if (unlikely(!kvm_check_gen(vcpu->kvm, ghc->generation) || gpa != ghc->gpa ||
| ^
arch/loongarch/kvm/vcpu.c:1821:53: error: expected ')'
1821 | kvm_is_error_hva(ghc->hva) || !ghc->memslot) {
| ^
arch/loongarch/kvm/vcpu.c:1820:5: note: to match this '('
1820 | if (unlikely(!kvm_check_gen(vcpu->kvm, ghc->generation) || gpa != ghc->gpa ||
| ^
2 errors generated.


vim +167 arch/loongarch/kvm/vcpu.c

151
152 static void kvm_update_stolen_time(struct kvm_vcpu *vcpu)
153 {
154 u32 version;
155 u64 steal;
156 gpa_t gpa;
157 struct kvm_steal_time __user *st;
158 struct gfn_to_hva_cache *ghc;
159
160 ghc = &vcpu->arch.st.cache;
161 gpa = vcpu->arch.st.guest_addr;
162 if (!(gpa & KVM_STEAL_PHYS_VALID))
163 return;
164
165 gpa &= KVM_STEAL_PHYS_MASK;
166 if (unlikely(!kvm_check_gen(vcpu->kvm, ghc->generation) || gpa != ghc->gpa ||
> 167 kvm_is_error_hva(ghc->hva) || !ghc->memslot) {
168 if (kvm_gfn_to_hva_cache_init(vcpu->kvm, ghc, gpa, sizeof(*st))) {
169 ghc->gpa = INVALID_GPA;
170 return;
171 }
172 }
173
174 st = (struct kvm_steal_time __user *)ghc->hva;
175 if (kvm_guest_has_pv_feature(vcpu, KVM_FEATURE_PREEMPT)) {
176 unsafe_put_user(0, &st->preempted, out);
177 vcpu->arch.st.preempted = 0;
178 }
179
180 unsafe_get_user(version, &st->version, out);
181 if (version & 1)
182 version += 1; /* first time write, random junk */
183
184 version += 1;
185 unsafe_put_user(version, &st->version, out);
186 smp_wmb();
187
188 unsafe_get_user(steal, &st->steal, out);
189 steal += current->sched_info.run_delay - vcpu->arch.st.last_steal;
190 vcpu->arch.st.last_steal = current->sched_info.run_delay;
191 unsafe_put_user(steal, &st->steal, out);
192
193 smp_wmb();
194 version += 1;
195 unsafe_put_user(version, &st->version, out);
196 out:
197 mark_page_dirty_in_slot(vcpu->kvm, ghc->memslot, gpa_to_gfn(ghc->gpa));
198 }
199

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki