diff -r 819399d0bdb1 xen/arch/x86/mm.c --- a/xen/arch/x86/mm.c Fri Feb 15 14:16:42 2008 +0000 +++ b/xen/arch/x86/mm.c Mon Feb 18 10:55:18 2008 +0100 @@ -1567,14 +1567,14 @@ static int mod_l3_entry(l3_pgentry_t *pl return 0; } - adjust_guest_l3e(nl3e, d); - /* Fast path for identical mapping and presence. */ if (!l3e_has_changed(ol3e, nl3e, _PAGE_PRESENT)) return UPDATE_ENTRY(l3, pl3e, ol3e, nl3e, pfn, curr, preserve_ad); if ( unlikely(!get_page_from_l3e(nl3e, pfn, d)) ) return 0; + + adjust_guest_l3e(nl3e, d); if ( unlikely(!UPDATE_ENTRY(l3, pl3e, ol3e, nl3e, pfn, curr, preserve_ad)) )