We have kvm_init_mmu_notifier() for registering mmu notifier.
This patch makes the counterpart for unregister.

Signed-off-by: Takuya Yoshikawa <[email protected]>
---
 virt/kvm/kvm_main.c |   16 +++++++++++-----
 1 files changed, 11 insertions(+), 5 deletions(-)

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index e758ef7..64b792c 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -359,6 +359,11 @@ static int kvm_init_mmu_notifier(struct kvm *kvm)
        return mmu_notifier_register(&kvm->mmu_notifier, current->mm);
 }
 
+static void kvm_uninit_mmu_notifier(struct kvm *kvm)
+{
+       mmu_notifier_unregister(&kvm->mmu_notifier, kvm->mm);
+}
+
 #else  /* !(CONFIG_MMU_NOTIFIER && KVM_ARCH_WANT_MMU_NOTIFIER) */
 
 static int kvm_init_mmu_notifier(struct kvm *kvm)
@@ -366,6 +371,11 @@ static int kvm_init_mmu_notifier(struct kvm *kvm)
        return 0;
 }
 
+static void kvm_uninit_mmu_notifier(struct kvm *kvm)
+{
+       kvm_arch_flush_shadow(kvm);
+}
+
 #endif /* CONFIG_MMU_NOTIFIER && KVM_ARCH_WANT_MMU_NOTIFIER */
 
 static struct kvm *kvm_create_vm(void)
@@ -485,11 +495,7 @@ static void kvm_destroy_vm(struct kvm *kvm)
        for (i = 0; i < KVM_NR_BUSES; i++)
                kvm_io_bus_destroy(kvm->buses[i]);
        kvm_coalesced_mmio_free(kvm);
-#if defined(CONFIG_MMU_NOTIFIER) && defined(KVM_ARCH_WANT_MMU_NOTIFIER)
-       mmu_notifier_unregister(&kvm->mmu_notifier, kvm->mm);
-#else
-       kvm_arch_flush_shadow(kvm);
-#endif
+       kvm_uninit_mmu_notifier(kvm);
        kvm_arch_destroy_vm(kvm);
        hardware_disable_all();
        mmdrop(mm);
-- 
1.6.3.3

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to