summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Mackerras2013-09-27 12:03:43 +0200
committerAlexander Graf2013-10-17 14:49:36 +0200
commitf1378b1c0bdce349e21f271dec0612a6cfac5d14 (patch)
treed5055cc06aa42edbbe644f36c49f6a6232e91562
parentKVM: PPC: Book3S PR: Reduce number of shadow PTEs invalidated by MMU notifiers (diff)
downloadkernel-qcow2-linux-f1378b1c0bdce349e21f271dec0612a6cfac5d14.tar.gz
kernel-qcow2-linux-f1378b1c0bdce349e21f271dec0612a6cfac5d14.tar.xz
kernel-qcow2-linux-f1378b1c0bdce349e21f271dec0612a6cfac5d14.zip
kvm: powerpc: book3s hv: Fix vcore leak
add kvmppc_free_vcores() to free the kvmppc_vcore structures that we allocate for a guest, which are currently being leaked. Signed-off-by: Paul Mackerras <paulus@samba.org> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r--arch/powerpc/kvm/book3s_hv.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index de9520f9241f..b4d5b3b06769 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -2050,10 +2050,20 @@ int kvmppc_core_init_vm(struct kvm *kvm)
return 0;
}
+static void kvmppc_free_vcores(struct kvm *kvm)
+{
+ long int i;
+
+ for (i = 0; i < KVM_MAX_VCORES; ++i)
+ kfree(kvm->arch.vcores[i]);
+ kvm->arch.online_vcores = 0;
+}
+
void kvmppc_core_destroy_vm(struct kvm *kvm)
{
uninhibit_secondary_onlining();
+ kvmppc_free_vcores(kvm);
if (kvm->arch.rma) {
kvm_release_rma(kvm->arch.rma);
kvm->arch.rma = NULL;