From: Chris Wright Date: Tue, 31 Mar 2009 21:50:44 +0000 (-0700) Subject: 2.6.29 kvm largepage leak fix X-Git-Tag: v2.6.29.1~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=6178ed7a94310e14e6b60acc0d2a7bbbd4af7111;p=thirdparty%2Fkernel%2Fstable-queue.git 2.6.29 kvm largepage leak fix --- diff --git a/queue-2.6.29/kvm-mmu-fix-another-largepage-memory-leak.patch b/queue-2.6.29/kvm-mmu-fix-another-largepage-memory-leak.patch new file mode 100644 index 00000000000..e2072690a99 --- /dev/null +++ b/queue-2.6.29/kvm-mmu-fix-another-largepage-memory-leak.patch @@ -0,0 +1,38 @@ +From stable-bounces@linux.kernel.org Thu Mar 26 23:05:11 2009 +Date: Thu, 26 Mar 2009 23:05:07 GMT +Message-Id: <200903262305.n2QN57TC005909@hera.kernel.org> +From: Joerg Roedel +To: stable@kernel.org +Subject: KVM: MMU: Fix another largepage memory leak + +From: Joerg Roedel + +upstream commit: c5bc22424021cabda862727fb3f5098b866f074d + +In the paging_fetch function rmap_remove is called after setting a large +pte to non-present. This causes rmap_remove to not drop the reference to +the large page. The result is a memory leak of that page. + +Cc: stable@kernel.org +Signed-off-by: Joerg Roedel +Acked-by: Marcelo Tosatti +Signed-off-by: Avi Kivity +[chrisw: backport to 2.6.29] +Signed-off-by: Chris Wright +--- + arch/x86/kvm/paging_tmpl.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/arch/x86/kvm/paging_tmpl.h ++++ b/arch/x86/kvm/paging_tmpl.h +@@ -314,9 +314,9 @@ static int FNAME(shadow_walk_entry)(stru + return 0; + + if (is_large_pte(*sptep)) { ++ rmap_remove(vcpu->kvm, sptep); + set_shadow_pte(sptep, shadow_trap_nonpresent_pte); + kvm_flush_remote_tlbs(vcpu->kvm); +- rmap_remove(vcpu->kvm, sptep); + } + + if (level == PT_DIRECTORY_LEVEL && gw->level == PT_DIRECTORY_LEVEL) { diff --git a/queue-2.6.29/series b/queue-2.6.29/series index d9c256a8e5c..ddb318cbc3b 100644 --- a/queue-2.6.29/series +++ b/queue-2.6.29/series @@ -42,3 +42,4 @@ vm-x86-pat-change-is_linear_pfn_mapping-to-not-use-vm_pgoff.patch lguest-wire-up-pte_update-pte_update_defer.patch lguest-fix-spurious-bug_on-on-invalid-guest-stack.patch cfg80211-fix-incorrect-assumption-on-last_request-for-11d.patch +kvm-mmu-fix-another-largepage-memory-leak.patch