From: Avi Kivity <[EMAIL PROTECTED]>

This reverts commit 202761268a29d4cd3a3fec35e6d6f2f239374635.  The change
caused a cycle that wouldn't let virtual machines to be deallocated (due to
the mm holding a ref to the file table, which holds a ref to kvm).

Signed-off-by: Avi Kivity <[EMAIL PROTECTED]>

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index a96a44f..30bf832 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -186,7 +186,8 @@ static struct kvm *kvm_create_vm(void)
        if (IS_ERR(kvm))
                goto out;
 
-       kvm->mm = get_task_mm(current);
+       kvm->mm = current->mm;
+       atomic_inc(&kvm->mm->mm_count);
        spin_lock_init(&kvm->mmu_lock);
        kvm_io_bus_init(&kvm->pio_bus);
        mutex_init(&kvm->lock);
@@ -238,7 +239,7 @@ static void kvm_destroy_vm(struct kvm *kvm)
        kvm_io_bus_destroy(&kvm->pio_bus);
        kvm_io_bus_destroy(&kvm->mmio_bus);
        kvm_arch_destroy_vm(kvm);
-       mmput(mm);
+       mmdrop(mm);
 }
 
 static int kvm_vm_release(struct inode *inode, struct file *filp)

-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
kvm-commits mailing list
kvm-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kvm-commits

Reply via email to