[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [HVM] Save/Restore: don't clobber page types in shadow code
# HG changeset patch # User Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx> # Date 1169138892 0 # Node ID f78cca1e57a27305e54b636e92cc25666ebfd9c3 # Parent 5859be20111093146d54e6820545f7a36eafab78 [HVM] Save/Restore: don't clobber page types in shadow code Signed-off-by: Tim Deegan <Tim.Deegan@xxxxxxxxxxxxx> --- xen/arch/x86/mm/shadow/common.c | 7 ++++--- xen/arch/x86/mm/shadow/multi.c | 8 -------- 2 files changed, 4 insertions(+), 11 deletions(-) diff -r 5859be201110 -r f78cca1e57a2 xen/arch/x86/mm/shadow/common.c --- a/xen/arch/x86/mm/shadow/common.c Thu Jan 18 16:48:11 2007 +0000 +++ b/xen/arch/x86/mm/shadow/common.c Thu Jan 18 16:48:12 2007 +0000 @@ -2184,10 +2184,11 @@ int sh_remove_all_mappings(struct vcpu * expected_count = (page->count_info & PGC_allocated) ? 1 : 0; if ( (page->count_info & PGC_count_mask) != expected_count ) { - /* Don't complain if we're in HVM and there's one extra mapping: - * The qemu helper process has an untyped mapping of this dom's RAM */ + /* Don't complain if we're in HVM and there are some extra mappings: + * The qemu helper process has an untyped mapping of this dom's RAM + * and the HVM restore program takes another. */ if ( !(shadow_mode_external(v->domain) - && (page->count_info & PGC_count_mask) <= 3 /* vmx restore add one extra mapping*/ + && (page->count_info & PGC_count_mask) <= 3 && (page->u.inuse.type_info & PGT_count_mask) == 0) ) { SHADOW_ERROR("can't find all mappings of mfn %lx: " diff -r 5859be201110 -r f78cca1e57a2 xen/arch/x86/mm/shadow/multi.c --- a/xen/arch/x86/mm/shadow/multi.c Thu Jan 18 16:48:11 2007 +0000 +++ b/xen/arch/x86/mm/shadow/multi.c Thu Jan 18 16:48:12 2007 +0000 @@ -1627,14 +1627,6 @@ sh_make_shadow(struct vcpu *v, mfn_t gmf default: /* Do nothing */ break; } } - - { - struct page_info *page = mfn_to_page(gmfn); - /* XXX: add it to emulate a touched page */ - if ((page->u.inuse.type_info & PGT_type_mask) == PGT_none){ - page->u.inuse.type_info |= (PGT_writable_page | PGT_validated); - } - } shadow_promote(v, gmfn, shadow_type); set_shadow_status(v, gmfn, shadow_type, smfn); _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |