aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/kvm
diff options
context:
space:
mode:
authorWei Yongjun <yjwei@cn.fujitsu.com>2010-08-16 22:08:52 -0400
committerAvi Kivity <avi@redhat.com>2010-10-24 04:51:05 -0400
commit646bab55a278ceb1cf43b1f80d3dd468be62a421 (patch)
tree413dd34c7282f69d422250cd48503c4ccc8e4831 /arch/powerpc/kvm
parent8ec4722dd2aab9b69befb919549ea0a5bfc9e670 (diff)
KVM: PPC: fix leakage of error page in kvmppc_patch_dcbz()
Add kvm_release_page_clean() after is_error_page() to avoid leakage of error page. Signed-off-by: Wei Yongjun <yjwei@cn.fujitsu.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'arch/powerpc/kvm')
-rw-r--r--arch/powerpc/kvm/book3s.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/powerpc/kvm/book3s.c b/arch/powerpc/kvm/book3s.c
index eee97b5a7400..7656b6df0d8b 100644
--- a/arch/powerpc/kvm/book3s.c
+++ b/arch/powerpc/kvm/book3s.c
@@ -455,8 +455,10 @@ static void kvmppc_patch_dcbz(struct kvm_vcpu *vcpu, struct kvmppc_pte *pte)
455 int i; 455 int i;
456 456
457 hpage = gfn_to_page(vcpu->kvm, pte->raddr >> PAGE_SHIFT); 457 hpage = gfn_to_page(vcpu->kvm, pte->raddr >> PAGE_SHIFT);
458 if (is_error_page(hpage)) 458 if (is_error_page(hpage)) {
459 kvm_release_page_clean(hpage);
459 return; 460 return;
461 }
460 462
461 hpage_offset = pte->raddr & ~PAGE_MASK; 463 hpage_offset = pte->raddr & ~PAGE_MASK;
462 hpage_offset &= ~0xFFFULL; 464 hpage_offset &= ~0xFFFULL;