diff options
author | Wei Yongjun <yjwei@cn.fujitsu.com> | 2010-08-16 22:08:52 -0400 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-10-24 04:51:05 -0400 |
commit | 646bab55a278ceb1cf43b1f80d3dd468be62a421 (patch) | |
tree | 413dd34c7282f69d422250cd48503c4ccc8e4831 /arch/powerpc/kvm | |
parent | 8ec4722dd2aab9b69befb919549ea0a5bfc9e670 (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.c | 4 |
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; |