do not free active mmu pages in free_mmu_pages()
PATCH v2 1/1 do not free active mmu pages in free_mmu_pages()
free_mmu_pages() should only undo what alloc_mmu_pages() does. Free mmu pages from generic VM destruction function.
Signed-off-by Gleb Natapov <[email protected]>
arch/x86/kvm/mmu.c +0 -8
@@ -2638,14 +2638,6 @@ EXPORT_SYMBOL_GPL(kvm_disable_tdp);static void free_mmu_pages (struct kvm_vcpu *vcpu) { -struct kvm_mmu_page *sp; - -while (!list_empty (&vcpu->kvm->arch.active_mmu_pages)) { - sp =container_of (vcpu->kvm->arch.active_mmu_pages.next, - struct kvm_mmu_page, link); -kvm_mmu_zap_page (vcpu->kvm, sp); -cond_resched (); - }free_page ((unsigned long )vcpu->arch.mmu.pae_root); }
virt/kvm/kvm_main.c +2 -0
@@ -1032,6 +1032,8 @@ static void kvm_destroy_vm(struct kvm *kvm)#endif #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_arch_destroy_vm (kvm);mmdrop (mm);
--
Gleb.
Avi Kivity
AppliedQuoted 3 lines · Gleb Natapov
free_mmu_pages()should only undo whatalloc_mmu_pages()does. Free mmu pages from generic VM destruction function.
Applied, thanks.
Signature · 1 line
error compiling committee.c: too many arguments to function