diff options
Diffstat (limited to 'virt/kvm/kvm_main.c')
-rw-r--r-- | virt/kvm/kvm_main.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index 3a5a08298aab..0b6f2f71271f 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c | |||
@@ -789,11 +789,19 @@ static int kvm_mmu_notifier_clear_flush_young(struct mmu_notifier *mn, | |||
789 | return young; | 789 | return young; |
790 | } | 790 | } |
791 | 791 | ||
792 | static void kvm_mmu_notifier_release(struct mmu_notifier *mn, | ||
793 | struct mm_struct *mm) | ||
794 | { | ||
795 | struct kvm *kvm = mmu_notifier_to_kvm(mn); | ||
796 | kvm_arch_flush_shadow(kvm); | ||
797 | } | ||
798 | |||
792 | static const struct mmu_notifier_ops kvm_mmu_notifier_ops = { | 799 | static const struct mmu_notifier_ops kvm_mmu_notifier_ops = { |
793 | .invalidate_page = kvm_mmu_notifier_invalidate_page, | 800 | .invalidate_page = kvm_mmu_notifier_invalidate_page, |
794 | .invalidate_range_start = kvm_mmu_notifier_invalidate_range_start, | 801 | .invalidate_range_start = kvm_mmu_notifier_invalidate_range_start, |
795 | .invalidate_range_end = kvm_mmu_notifier_invalidate_range_end, | 802 | .invalidate_range_end = kvm_mmu_notifier_invalidate_range_end, |
796 | .clear_flush_young = kvm_mmu_notifier_clear_flush_young, | 803 | .clear_flush_young = kvm_mmu_notifier_clear_flush_young, |
804 | .release = kvm_mmu_notifier_release, | ||
797 | }; | 805 | }; |
798 | #endif /* CONFIG_MMU_NOTIFIER && KVM_ARCH_WANT_MMU_NOTIFIER */ | 806 | #endif /* CONFIG_MMU_NOTIFIER && KVM_ARCH_WANT_MMU_NOTIFIER */ |
799 | 807 | ||