|
|
@@ -873,6 +873,7 @@ static struct kvm_memslots *install_new_memslots(struct kvm *kvm,
|
|
|
int as_id, struct kvm_memslots *slots)
|
|
|
{
|
|
|
struct kvm_memslots *old_memslots = __kvm_memslots(kvm, as_id);
|
|
|
+ u64 gen;
|
|
|
|
|
|
/*
|
|
|
* Set the low bit in the generation, which disables SPTE caching
|
|
|
@@ -895,9 +896,11 @@ static struct kvm_memslots *install_new_memslots(struct kvm *kvm,
|
|
|
* space 0 will use generations 0, 4, 8, ... while * address space 1 will
|
|
|
* use generations 2, 6, 10, 14, ...
|
|
|
*/
|
|
|
- slots->generation += KVM_ADDRESS_SPACE_NUM * 2 - 1;
|
|
|
+ gen = slots->generation + KVM_ADDRESS_SPACE_NUM * 2 - 1;
|
|
|
|
|
|
- kvm_arch_memslots_updated(kvm, slots);
|
|
|
+ kvm_arch_memslots_updated(kvm, gen);
|
|
|
+
|
|
|
+ slots->generation = gen;
|
|
|
|
|
|
return old_memslots;
|
|
|
}
|