Skip to content

Commit

Permalink
KVM: Use kmem_cache_free for kmem_cache_zalloc'ed objects
Browse files Browse the repository at this point in the history
We use kfree in svm.c and vmx.c, and this works, but it could break at
any time.  kfree() is supposed to match up with kmalloc().

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Signed-off-by: Avi Kivity <avi@qumranet.com>
  • Loading branch information
Rusty Russell authored and Avi Kivity committed Oct 13, 2007
1 parent f024247 commit a477034
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 4 deletions.
4 changes: 2 additions & 2 deletions drivers/kvm/svm.c
Original file line number Diff line number Diff line change
Expand Up @@ -610,7 +610,7 @@ static struct kvm_vcpu *svm_create_vcpu(struct kvm *kvm, unsigned int id)
uninit:
kvm_vcpu_uninit(&svm->vcpu);
free_svm:
kfree(svm);
kmem_cache_free(kvm_vcpu_cache, svm);
out:
return ERR_PTR(err);
}
Expand All @@ -621,7 +621,7 @@ static void svm_free_vcpu(struct kvm_vcpu *vcpu)

__free_page(pfn_to_page(svm->vmcb_pa >> PAGE_SHIFT));
kvm_vcpu_uninit(vcpu);
kfree(svm);
kmem_cache_free(kvm_vcpu_cache, svm);
}

static void svm_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
Expand Down
4 changes: 2 additions & 2 deletions drivers/kvm/vmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -2359,7 +2359,7 @@ static void vmx_free_vcpu(struct kvm_vcpu *vcpu)
kfree(vmx->host_msrs);
kfree(vmx->guest_msrs);
kvm_vcpu_uninit(vcpu);
kfree(vmx);
kmem_cache_free(kvm_vcpu_cache, vmx);
}

static struct kvm_vcpu *vmx_create_vcpu(struct kvm *kvm, unsigned int id)
Expand Down Expand Up @@ -2410,7 +2410,7 @@ static struct kvm_vcpu *vmx_create_vcpu(struct kvm *kvm, unsigned int id)
uninit_vcpu:
kvm_vcpu_uninit(&vmx->vcpu);
free_vcpu:
kfree(vmx);
kmem_cache_free(kvm_vcpu_cache, vmx);
return ERR_PTR(err);
}

Expand Down

0 comments on commit a477034

Please sign in to comment.