diff options
author | Wei Yongjun <yjwei@cn.fujitsu.com> | 2010-08-17 04:08:52 +0200 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2010-10-24 10:51:05 +0200 |
commit | 646bab55a278ceb1cf43b1f80d3dd468be62a421 (patch) | |
tree | 413dd34c7282f69d422250cd48503c4ccc8e4831 /arch/powerpc/kvm | |
parent | KVM: Separate emulation context initialization in a separate function (diff) | |
download | linux-646bab55a278ceb1cf43b1f80d3dd468be62a421.tar.xz linux-646bab55a278ceb1cf43b1f80d3dd468be62a421.zip |
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) int i; hpage = gfn_to_page(vcpu->kvm, pte->raddr >> PAGE_SHIFT); - if (is_error_page(hpage)) + if (is_error_page(hpage)) { + kvm_release_page_clean(hpage); return; + } hpage_offset = pte->raddr & ~PAGE_MASK; hpage_offset &= ~0xFFFULL; |