diff options
author | Marcelo Tosatti <mtosatti@redhat.com> | 2007-12-20 19:18:26 -0500 |
---|---|---|
committer | Avi Kivity <avi@qumranet.com> | 2008-01-30 11:01:21 -0500 |
commit | aaee2c94f7a1f7726e360a6cfb40173bd552bcff (patch) | |
tree | e9066ae5509c349bfd6a187e85d52cc476e16a12 /arch/x86/kvm/vmx.c | |
parent | d7824fff896a1698a07a8046dc362f4500c302f7 (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.c | 2 |
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(¤t->mm->mmap_sem); | 1480 | down_write(¤t->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); |
1492 | out: | 1491 | out: |
1493 | up_write(¤t->mm->mmap_sem); | 1492 | up_write(¤t->mm->mmap_sem); |
1494 | mutex_unlock(&kvm->lock); | ||
1495 | return r; | 1493 | return r; |
1496 | } | 1494 | } |
1497 | 1495 | ||