From 9fb2104d46a6349a1546573f089f8aeaa4388f6e Mon Sep 17 00:00:00 2001 From: Wei Yongjun Date: Thu, 15 Jul 2010 08:51:58 +0800 Subject: [PATCH] --- yaml --- r: 202419 b: refs/heads/master c: c19b8bd60e19308d5583ef200ddcc782d85d9543 h: refs/heads/master i: 202417: 338382f9ab71ccab9925df9c69cebe2eb4180bd3 202415: 14c62e1ea53a6502b08ae9505e6ecbc3767a6e35 v: v3 --- [refs] | 2 +- trunk/arch/x86/kvm/x86.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index 5618ccb2c991..9d826b6d588c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 9195c4da26bbf8860e2e7b648dbf4ab465c7933a +refs/heads/master: c19b8bd60e19308d5583ef200ddcc782d85d9543 diff --git a/trunk/arch/x86/kvm/x86.c b/trunk/arch/x86/kvm/x86.c index 689c2c3182ab..97aab036dabf 100644 --- a/trunk/arch/x86/kvm/x86.c +++ b/trunk/arch/x86/kvm/x86.c @@ -3562,6 +3562,10 @@ static int emulator_cmpxchg_emulated(unsigned long addr, goto emul_write; page = gfn_to_page(vcpu->kvm, gpa >> PAGE_SHIFT); + if (is_error_page(page)) { + kvm_release_page_clean(page); + goto emul_write; + } kaddr = kmap_atomic(page, KM_USER0); kaddr += offset_in_page(gpa);