struct timeval start_time;
int i, ret;
- ret = libxl__build_pre(gc, domid, d_config, state);
+ ret = libxl__build_pre(gc, domid, d_config, state, false);
if (ret)
goto out;
goto out;
}
- rc = libxl__build_pre(gc, domid, d_config, state);
+ rc = libxl__build_pre(gc, domid, d_config, state,
+ dcs->domid_soft_reset != INVALID_DOMID);
if (rc)
goto out;
}
int libxl__build_pre(libxl__gc *gc, uint32_t domid,
- libxl_domain_config *d_config, libxl__domain_build_state *state)
+ libxl_domain_config *d_config, libxl__domain_build_state *state,
+ bool is_reset)
{
libxl_domain_build_info *const info = &d_config->b_info;
libxl_ctx *ctx = libxl__gc_owner(gc);
int rc;
uint64_t size;
- if (xc_domain_max_vcpus(ctx->xch, domid, info->max_vcpus) != 0) {
- LOG(ERROR, "Couldn't set max vcpu count");
- return ERROR_FAIL;
- }
+ if (!is_reset) {
+ if (xc_domain_max_vcpus(ctx->xch, domid, info->max_vcpus) != 0) {
+ LOG(ERROR, "Couldn't set max vcpu count");
+ return ERROR_FAIL;
+ }
- if (xc_domain_set_gnttab_limits(ctx->xch, domid, info->max_grant_frames,
- info->max_maptrack_frames) != 0) {
- LOG(ERROR, "Couldn't set grant table limits");
- return ERROR_FAIL;
+ if (xc_domain_set_gnttab_limits(ctx->xch, domid, info->max_grant_frames,
+ info->max_maptrack_frames) != 0) {
+ LOG(ERROR, "Couldn't set grant table limits");
+ return ERROR_FAIL;
+ }
}
/*
_hidden int libxl__build_pre(libxl__gc *gc, uint32_t domid,
libxl_domain_config * const d_config,
- libxl__domain_build_state *state);
+ libxl__domain_build_state *state, bool is_reset);
_hidden int libxl__build_post(libxl__gc *gc, uint32_t domid,
libxl_domain_build_info *info, libxl__domain_build_state *state,
char **vms_ents, char **local_ents);