]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.14-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Jul 2014 19:11:06 +0000 (12:11 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 3 Jul 2014 19:11:06 +0000 (12:11 -0700)
added patches:
mips-kvm-fix-memory-leak-on-vcpu.patch
mips-kvm-remove-redundant-null-checks-before-kfree.patch

queue-3.14/mips-kvm-fix-memory-leak-on-vcpu.patch [new file with mode: 0644]
queue-3.14/mips-kvm-remove-redundant-null-checks-before-kfree.patch [new file with mode: 0644]
queue-3.14/series

diff --git a/queue-3.14/mips-kvm-fix-memory-leak-on-vcpu.patch b/queue-3.14/mips-kvm-fix-memory-leak-on-vcpu.patch
new file mode 100644 (file)
index 0000000..4bcbc16
--- /dev/null
@@ -0,0 +1,44 @@
+From 8c9eb041cf76038eb3b62ee259607eec9b89f48d Mon Sep 17 00:00:00 2001
+From: Deng-Cheng Zhu <dengcheng.zhu@imgtec.com>
+Date: Tue, 24 Jun 2014 10:31:08 -0700
+Subject: MIPS: KVM: Fix memory leak on VCPU
+
+From: Deng-Cheng Zhu <dengcheng.zhu@imgtec.com>
+
+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 <dengcheng.zhu@imgtec.com>
+Reviewed-by: James Hogan <james.hogan@imgtec.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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.14/mips-kvm-remove-redundant-null-checks-before-kfree.patch b/queue-3.14/mips-kvm-remove-redundant-null-checks-before-kfree.patch
new file mode 100644 (file)
index 0000000..1bcd95f
--- /dev/null
@@ -0,0 +1,54 @@
+From c6c0a6637f9da54f9472144d44f71cf847f92e20 Mon Sep 17 00:00:00 2001
+From: James Hogan <james.hogan@imgtec.com>
+Date: Thu, 29 May 2014 10:16:44 +0100
+Subject: MIPS: KVM: Remove redundant NULL checks before kfree()
+
+From: James Hogan <james.hogan@imgtec.com>
+
+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 <james.hogan@imgtec.com>
+Cc: Paolo Bonzini <pbonzini@redhat.com>
+Cc: Gleb Natapov <gleb@kernel.org>
+Cc: kvm@vger.kernel.org
+Cc: Ralf Baechle <ralf@linux-mips.org>
+Cc: linux-mips@linux-mips.org
+Cc: Sanjay Lal <sanjayl@kymasys.com>
+Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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)
index 7badf211192c8dde70528042d335bb887a91f289..742ef1430bc6b3dc35c80d931a4c52b686878d43 100644 (file)
@@ -46,3 +46,5 @@ powerpc-add-at_hwcap2-to-indicate-v.crypto-category-support.patch
 powerpc-don-t-skip-epapr-spin-table-cpus.patch
 xfs-xfs_readsb-needs-to-check-for-magic-numbers.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