diff options
author | Marcelo Tosatti <mtosatti@redhat.com> | 2009-05-12 17:55:43 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-06-10 04:48:54 -0400 |
commit | 7c8a83b75a38a807d37f5a4398eca2a42c8cf513 (patch) | |
tree | 6d06eb065c6658c5058354cf7289428b495c909f /arch/x86/kvm/mmu.c | |
parent | 310b5d306c1aee7ebe32f702c0e33e7988d50646 (diff) |
KVM: MMU: protect kvm_mmu_change_mmu_pages with mmu_lock
kvm_handle_hva, called by MMU notifiers, manipulates mmu data only with
the protection of mmu_lock.
Update kvm_mmu_change_mmu_pages callers to take mmu_lock, thus protecting
against kvm_handle_hva.
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/x86/kvm/mmu.c')
-rw-r--r-- | arch/x86/kvm/mmu.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/x86/kvm/mmu.c b/arch/x86/kvm/mmu.c index bc614f91f5ba..3ce60ad1fe37 100644 --- a/arch/x86/kvm/mmu.c +++ b/arch/x86/kvm/mmu.c | |||
@@ -2723,7 +2723,6 @@ void kvm_mmu_slot_remove_write_access(struct kvm *kvm, int slot) | |||
2723 | { | 2723 | { |
2724 | struct kvm_mmu_page *sp; | 2724 | struct kvm_mmu_page *sp; |
2725 | 2725 | ||
2726 | spin_lock(&kvm->mmu_lock); | ||
2727 | list_for_each_entry(sp, &kvm->arch.active_mmu_pages, link) { | 2726 | list_for_each_entry(sp, &kvm->arch.active_mmu_pages, link) { |
2728 | int i; | 2727 | int i; |
2729 | u64 *pt; | 2728 | u64 *pt; |
@@ -2738,7 +2737,6 @@ void kvm_mmu_slot_remove_write_access(struct kvm *kvm, int slot) | |||
2738 | pt[i] &= ~PT_WRITABLE_MASK; | 2737 | pt[i] &= ~PT_WRITABLE_MASK; |
2739 | } | 2738 | } |
2740 | kvm_flush_remote_tlbs(kvm); | 2739 | kvm_flush_remote_tlbs(kvm); |
2741 | spin_unlock(&kvm->mmu_lock); | ||
2742 | } | 2740 | } |
2743 | 2741 | ||
2744 | void kvm_mmu_zap_all(struct kvm *kvm) | 2742 | void kvm_mmu_zap_all(struct kvm *kvm) |