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: "
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);