summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvi Kivity <avi@qumranet.com>2007-01-06 00:36:59 (GMT)
committerLinus Torvalds <torvalds@woody.osdl.org>2007-01-06 07:55:28 (GMT)
commit760db773fbd0ad2ece89393218c4a4213b5bae6a (patch)
tree8c644a962566335e2f21ffec2b8e0154b138dc17
parent4db9c47c052b89d89f43d12879690c1b3283b887 (diff)
downloadlinux-760db773fbd0ad2ece89393218c4a4213b5bae6a.tar.xz
[PATCH] KVM: MMU: Add missing dirty bit
If we emulate a write, we fail to set the dirty bit on the guest pte, leading the guest to believe the page is clean, and thus lose data. Bad. Fix by setting the guest pte dirty bit under such conditions. Signed-off-by: Avi Kivity <avi@qumranet.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--drivers/kvm/paging_tmpl.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/kvm/paging_tmpl.h b/drivers/kvm/paging_tmpl.h
index c894b51..2dbf430 100644
--- a/drivers/kvm/paging_tmpl.h
+++ b/drivers/kvm/paging_tmpl.h
@@ -317,6 +317,7 @@ static int FNAME(fix_write_pf)(struct kvm_vcpu *vcpu,
} else if (kvm_mmu_lookup_page(vcpu, gfn)) {
pgprintk("%s: found shadow page for %lx, marking ro\n",
__FUNCTION__, gfn);
+ *guest_ent |= PT_DIRTY_MASK;
*write_pt = 1;
return 0;
}