Commit b43b1901 authored by Marcelo Tosatti's avatar Marcelo Tosatti Committed by Avi Kivity

KVM: take mmu_lock when updating a deleted slot

kvm_handle_hva relies on mmu_lock protection to safely access
the memslot structures.
Signed-off-by: default avatarMarcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent 7c8a83b7
...@@ -1210,8 +1210,10 @@ int __kvm_set_memory_region(struct kvm *kvm, ...@@ -1210,8 +1210,10 @@ int __kvm_set_memory_region(struct kvm *kvm,
kvm_free_physmem_slot(&old, npages ? &new : NULL); kvm_free_physmem_slot(&old, npages ? &new : NULL);
/* Slot deletion case: we have to update the current slot */ /* Slot deletion case: we have to update the current slot */
spin_lock(&kvm->mmu_lock);
if (!npages) if (!npages)
*memslot = old; *memslot = old;
spin_unlock(&kvm->mmu_lock);
#ifdef CONFIG_DMAR #ifdef CONFIG_DMAR
/* map the pages in iommu page table */ /* map the pages in iommu page table */
r = kvm_iommu_map_pages(kvm, base_gfn, npages); r = kvm_iommu_map_pages(kvm, base_gfn, npages);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment