From: Greg Kroah-Hartman Date: Thu, 3 Jul 2014 19:11:09 +0000 (-0700) Subject: 3.15-stable patches X-Git-Tag: v3.4.97~15 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6dcb09cd61c173eac800d1272c1bad2d8cfdbacd;p=thirdparty%2Fkernel%2Fstable-queue.git 3.15-stable patches added patches: mips-kvm-fix-memory-leak-on-vcpu.patch mips-kvm-remove-redundant-null-checks-before-kfree.patch --- diff --git a/queue-3.15/mips-kvm-fix-memory-leak-on-vcpu.patch b/queue-3.15/mips-kvm-fix-memory-leak-on-vcpu.patch new file mode 100644 index 00000000000..4bcbc161f62 --- /dev/null +++ b/queue-3.15/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 +@@ -389,6 +389,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.15/mips-kvm-remove-redundant-null-checks-before-kfree.patch b/queue-3.15/mips-kvm-remove-redundant-null-checks-before-kfree.patch new file mode 100644 index 00000000000..1bcd95feb53 --- /dev/null +++ b/queue-3.15/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); +@@ -389,12 +387,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.15/series b/queue-3.15/series index b4c20c93333..cf852bec3f7 100644 --- a/queue-3.15/series +++ b/queue-3.15/series @@ -53,3 +53,5 @@ xfs-xfs_readsb-needs-to-check-for-magic-numbers.patch reiserfs-call-truncate_setsize-under-tailpack-mutex.patch cpufreq-ppc-corenet-cpu-freq-do_div-use-quotient.patch cpufreq-unlock-when-failing-cpufreq_update_policy.patch +mips-kvm-remove-redundant-null-checks-before-kfree.patch +mips-kvm-fix-memory-leak-on-vcpu.patch