Re: [PART1 RFC v4 02/11] KVM: x86: Introducing kvm_x86_ops VM init/uninit hooks

From: Suravee Suthikulpanit
Date: Mon Apr 18 2016 - 18:01:23 EST


Paolo,

On 04/12/2016 04:55 PM, Paolo Bonzini wrote:


On 11/04/2016 22:49, Radim KrÄmÃÅ wrote:
@@ -7781,6 +7784,9 @@ static void kvm_free_vcpus(struct kvm *kvm)
kvm_for_each_vcpu(i, vcpu, kvm)
kvm_arch_vcpu_free(vcpu);

+ if (kvm_x86_ops->vm_uninit)
+ kvm_x86_ops->vm_uninit(kvm);
vm_uninit() doesn't seem to have much to do with kvm_free_vcpus(),
please call it from kvm_arch_destroy_vm().

(kvm_x86_ops.vm_destroy would be a better name then.)

Especially, you're calling it with struct kvm full of dangling pointer,
so please call it early, right after the "if (current->mm == kvm->mm)"
block.

Paolo

Good point.

Thanks,
Suravee