libxl__save_helper_state *shs = user;
libxl__domain_create_state *dcs = shs->caller_state;
STATE_AO_GC(dcs->ao);
+ libxl_ctx *ctx = libxl__gc_owner(gc);
+
+ libxl_domain_config *d_config = dcs->guest_config;
+ libxl_domain_build_info *info = &d_config->b_info;
- /* Nothing to do (yet). */
+ libxl__cpuid_legacy(ctx, dcs->guest_domid, info);
return 0;
}
rc = libxl__arch_domain_create(gc, d_config, domid);
+ /* Construct a CPUID policy, but only for brand new domains. Domains
+ * being migrated-in/restored have CPUID handled during the
+ * static_data_done() callback. */
+ if (!state->restore)
+ libxl__cpuid_legacy(ctx, domid, info);
+
return rc;
}
if (rc)
return rc;
- libxl__cpuid_legacy(ctx, domid, info);
-
if (info->type == LIBXL_DOMAIN_TYPE_HVM
&& !libxl_ms_vm_genid_is_zero(&info->u.hvm.ms_vm_genid)) {
rc = libxl__ms_vm_genid_set(gc, domid,