From: Marcelo Tosatti Date: Mon, 3 Aug 2009 17:57:48 +0000 (-0300) Subject: KVM: take mmu_lock when updating a deleted slot X-Git-Tag: v2.6.30.6~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4877f4a4c8d80472228e0c843fee5957ae1f94d1;p=thirdparty%2Fkernel%2Fstable.git KVM: take mmu_lock when updating a deleted slot (cherry picked from commit b43b1901ad282aeb74161837fb403927102687a1) kvm_handle_hva relies on mmu_lock protection to safely access the memslot structures. Signed-off-by: Marcelo Tosatti Signed-off-by: Avi Kivity Signed-off-by: Greg Kroah-Hartman --- diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 148982913805d..fe0b1eee0898d 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -1055,8 +1055,10 @@ int __kvm_set_memory_region(struct kvm *kvm, kvm_free_physmem_slot(&old, npages ? &new : NULL); /* Slot deletion case: we have to update the current slot */ + spin_lock(&kvm->mmu_lock); if (!npages) *memslot = old; + spin_unlock(&kvm->mmu_lock); #ifdef CONFIG_DMAR /* map the pages in iommu page table */ r = kvm_iommu_map_pages(kvm, base_gfn, npages);