From 73d00f30dbb2224ea9c32bfb0354bd9667a3da51 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 3 Jul 2014 12:11:01 -0700 Subject: [PATCH] 3.10-stable patches added patches: mips-kvm-fix-memory-leak-on-vcpu.patch mips-kvm-remove-redundant-null-checks-before-kfree.patch --- .../mips-kvm-fix-memory-leak-on-vcpu.patch | 44 +++++++++++++++ ...e-redundant-null-checks-before-kfree.patch | 54 +++++++++++++++++++ queue-3.10/series | 2 + 3 files changed, 100 insertions(+) create mode 100644 queue-3.10/mips-kvm-fix-memory-leak-on-vcpu.patch create mode 100644 queue-3.10/mips-kvm-remove-redundant-null-checks-before-kfree.patch diff --git a/queue-3.10/mips-kvm-fix-memory-leak-on-vcpu.patch b/queue-3.10/mips-kvm-fix-memory-leak-on-vcpu.patch new file mode 100644 index 00000000000..677f1c29233 --- /dev/null +++ b/queue-3.10/mips-kvm-fix-memory-leak-on-vcpu.patch @@ -0,0 +1,44 @@ +From 8c9eb041cf76038eb3b62ee259607eec9b89f48d Mon Sep 17 00:00:00 2001 +From: Deng-Cheng Zhu +Date: Tue, 24 Jun 2014 10:31:08 -0700 +Subject: MIPS: KVM: Fix memory leak on VCPU + +From: Deng-Cheng Zhu + +commit 8c9eb041cf76038eb3b62ee259607eec9b89f48d upstream. + +kvm_arch_vcpu_free() is called in 2 code paths: + +1) kvm_vm_ioctl() + kvm_vm_ioctl_create_vcpu() + kvm_arch_vcpu_destroy() + kvm_arch_vcpu_free() +2) kvm_put_kvm() + kvm_destroy_vm() + kvm_arch_destroy_vm() + kvm_mips_free_vcpus() + kvm_arch_vcpu_free() + +Neither of the paths handles VCPU free. We need to do it in +kvm_arch_vcpu_free() corresponding to the memory allocation in +kvm_arch_vcpu_create(). + +Signed-off-by: Deng-Cheng Zhu +Reviewed-by: James Hogan +Signed-off-by: Paolo Bonzini +Signed-off-by: Greg Kroah-Hartman + +--- + arch/mips/kvm/kvm_mips.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/arch/mips/kvm/kvm_mips.c ++++ b/arch/mips/kvm/kvm_mips.c +@@ -384,6 +384,7 @@ void kvm_arch_vcpu_free(struct kvm_vcpu + + kfree(vcpu->arch.guest_ebase); + kfree(vcpu->arch.kseg0_commpage); ++ kfree(vcpu); + } + + void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu) diff --git a/queue-3.10/mips-kvm-remove-redundant-null-checks-before-kfree.patch b/queue-3.10/mips-kvm-remove-redundant-null-checks-before-kfree.patch new file mode 100644 index 00000000000..20fe39b764d --- /dev/null +++ b/queue-3.10/mips-kvm-remove-redundant-null-checks-before-kfree.patch @@ -0,0 +1,54 @@ +From c6c0a6637f9da54f9472144d44f71cf847f92e20 Mon Sep 17 00:00:00 2001 +From: James Hogan +Date: Thu, 29 May 2014 10:16:44 +0100 +Subject: MIPS: KVM: Remove redundant NULL checks before kfree() + +From: James Hogan + +commit c6c0a6637f9da54f9472144d44f71cf847f92e20 upstream. + +The kfree() function already NULL checks the parameter so remove the +redundant NULL checks before kfree() calls in arch/mips/kvm/. + +Signed-off-by: James Hogan +Cc: Paolo Bonzini +Cc: Gleb Natapov +Cc: kvm@vger.kernel.org +Cc: Ralf Baechle +Cc: linux-mips@linux-mips.org +Cc: Sanjay Lal +Signed-off-by: Paolo Bonzini +Signed-off-by: Greg Kroah-Hartman + +--- + arch/mips/kvm/kvm_mips.c | 12 +++--------- + 1 file changed, 3 insertions(+), 9 deletions(-) + +--- a/arch/mips/kvm/kvm_mips.c ++++ b/arch/mips/kvm/kvm_mips.c +@@ -149,9 +149,7 @@ void kvm_mips_free_vcpus(struct kvm *kvm + if (kvm->arch.guest_pmap[i] != KVM_INVALID_PAGE) + kvm_mips_release_pfn_clean(kvm->arch.guest_pmap[i]); + } +- +- if (kvm->arch.guest_pmap) +- kfree(kvm->arch.guest_pmap); ++ kfree(kvm->arch.guest_pmap); + + kvm_for_each_vcpu(i, vcpu, kvm) { + kvm_arch_vcpu_free(vcpu); +@@ -384,12 +382,8 @@ void kvm_arch_vcpu_free(struct kvm_vcpu + + kvm_mips_dump_stats(vcpu); + +- if (vcpu->arch.guest_ebase) +- kfree(vcpu->arch.guest_ebase); +- +- if (vcpu->arch.kseg0_commpage) +- kfree(vcpu->arch.kseg0_commpage); +- ++ kfree(vcpu->arch.guest_ebase); ++ kfree(vcpu->arch.kseg0_commpage); + } + + void kvm_arch_vcpu_destroy(struct kvm_vcpu *vcpu) diff --git a/queue-3.10/series b/queue-3.10/series index b08fb9f14fb..aa61a8a4ab8 100644 --- a/queue-3.10/series +++ b/queue-3.10/series @@ -32,3 +32,5 @@ powerpc-fix-typo-config_pmac.patch powerpc-fix-typo-config_ppc_cpu.patch powerpc-add-at_hwcap2-to-indicate-v.crypto-category-support.patch reiserfs-call-truncate_setsize-under-tailpack-mutex.patch +mips-kvm-remove-redundant-null-checks-before-kfree.patch +mips-kvm-fix-memory-leak-on-vcpu.patch -- 2.47.3