diff options
author | Marcelo Tosatti <mtosatti@redhat.com> | 2012-08-24 14:54:58 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2012-09-06 09:37:27 -0400 |
commit | 12d6e7538e2d418c08f082b1b44ffa5fb7270ed8 (patch) | |
tree | f548812d6c74416d6b4f2cae1d88c06cf56c0f96 /virt | |
parent | 2df72e9bc4c505d8357012f2924589f3d16f9d44 (diff) |
KVM: perform an invalid memslot step for gpa base change
PPC must flush all translations before the new memory slot
is visible.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'virt')
-rw-r--r-- | virt/kvm/kvm_main.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index a4bf05be5fea..f41ea1262d51 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c | |||
@@ -791,7 +791,7 @@ int __kvm_set_memory_region(struct kvm *kvm, | |||
791 | /* destroy any largepage mappings for dirty tracking */ | 791 | /* destroy any largepage mappings for dirty tracking */ |
792 | } | 792 | } |
793 | 793 | ||
794 | if (!npages) { | 794 | if (!npages || base_gfn != old.base_gfn) { |
795 | struct kvm_memory_slot *slot; | 795 | struct kvm_memory_slot *slot; |
796 | 796 | ||
797 | r = -ENOMEM; | 797 | r = -ENOMEM; |
@@ -807,8 +807,8 @@ int __kvm_set_memory_region(struct kvm *kvm, | |||
807 | old_memslots = kvm->memslots; | 807 | old_memslots = kvm->memslots; |
808 | rcu_assign_pointer(kvm->memslots, slots); | 808 | rcu_assign_pointer(kvm->memslots, slots); |
809 | synchronize_srcu_expedited(&kvm->srcu); | 809 | synchronize_srcu_expedited(&kvm->srcu); |
810 | /* From this point no new shadow pages pointing to a deleted | 810 | /* From this point no new shadow pages pointing to a deleted, |
811 | * memslot will be created. | 811 | * or moved, memslot will be created. |
812 | * | 812 | * |
813 | * validation of sp->gfn happens in: | 813 | * validation of sp->gfn happens in: |
814 | * - gfn_to_hva (kvm_read_guest, gfn_to_pfn) | 814 | * - gfn_to_hva (kvm_read_guest, gfn_to_pfn) |