discard_initial_modules();
- v->is_initialised = 1;
- clear_bit(_VPF_down, &v->pause_flags);
-
memset(regs, 0, sizeof(*regs));
regs->pc = (register_t)kinfo.entry;
vcpu_switch_to_aarch64_mode(d->vcpu[i]);
}
+ v->is_initialised = 1;
+ clear_bit(_VPF_down, &v->pause_flags);
+
return 0;
}
void *(*bootstrap_map)(const module_t *),
char *cmdline)
{
+ int rc;
+
/* Sanity! */
BUG_ON(d->domain_id != 0);
BUG_ON(d->vcpu[0] == NULL);
}
#endif
- return (is_hvm_domain(d) ? dom0_construct_pvh : dom0_construct_pv)
- (d, image, image_headroom, initrd,bootstrap_map, cmdline);
+ rc = (is_hvm_domain(d) ? dom0_construct_pvh : dom0_construct_pv)
+ (d, image, image_headroom, initrd, bootstrap_map, cmdline);
+ if ( rc )
+ return rc;
+
+ /* Sanity! */
+ BUG_ON(!d->vcpu[0]->is_initialised);
+
+ return 0;
}
/*
update_domain_wallclock_time(d);
+ v->is_initialised = 1;
clear_bit(_VPF_down, &v->pause_flags);
return 0;
update_domain_wallclock_time(d);
- v->is_initialised = 1;
- clear_bit(_VPF_down, &v->pause_flags);
-
/*
* Initial register values:
* DS,ES,FS,GS = FLAT_KERNEL_DS
if ( d->domain_id == hardware_domid )
iommu_hwdom_init(d);
+ v->is_initialised = 1;
+ clear_bit(_VPF_down, &v->pause_flags);
+
return 0;
out: