aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/vmx.c
diff options
context:
space:
mode:
authorMarcelo Tosatti <mtosatti@redhat.com>2007-12-20 19:18:26 -0500
committerAvi Kivity <avi@qumranet.com>2008-01-30 11:01:21 -0500
commitaaee2c94f7a1f7726e360a6cfb40173bd552bcff (patch)
treee9066ae5509c349bfd6a187e85d52cc476e16a12 /arch/x86/kvm/vmx.c
parentd7824fff896a1698a07a8046dc362f4500c302f7 (diff)
KVM: MMU: Switch to mmu spinlock
Convert the synchronization of the shadow handling to a separate mmu_lock spinlock. Also guard fetch() by mmap_sem in read-mode to protect against alias and memslot changes. Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com> Signed-off-by: Avi Kivity <avi@qumranet.com>
Diffstat (limited to 'arch/x86/kvm/vmx.c')
-rw-r--r--arch/x86/kvm/vmx.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index c39493feba46..3d251f894a8d 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -1477,7 +1477,6 @@ static int alloc_apic_access_page(struct kvm *kvm)
1477 struct kvm_userspace_memory_region kvm_userspace_mem; 1477 struct kvm_userspace_memory_region kvm_userspace_mem;
1478 int r = 0; 1478 int r = 0;
1479 1479
1480 mutex_lock(&kvm->lock);
1481 down_write(&current->mm->mmap_sem); 1480 down_write(&current->mm->mmap_sem);
1482 if (kvm->arch.apic_access_page) 1481 if (kvm->arch.apic_access_page)
1483 goto out; 1482 goto out;
@@ -1491,7 +1490,6 @@ static int alloc_apic_access_page(struct kvm *kvm)
1491 kvm->arch.apic_access_page = gfn_to_page(kvm, 0xfee00); 1490 kvm->arch.apic_access_page = gfn_to_page(kvm, 0xfee00);
1492out: 1491out:
1493 up_write(&current->mm->mmap_sem); 1492 up_write(&current->mm->mmap_sem);
1494 mutex_unlock(&kvm->lock);
1495 return r; 1493 return r;
1496} 1494}
1497 1495