@@ -892,6 +892,12 @@ static void initiate_domain_create(libxl__egc *egc,
goto error_out;
}
+ ret = libxl__domain_build_info_setdefault(gc, &d_config->b_info);
+ if (ret) {
+ LOG(ERROR, "Unable to set domain build info defaults");
+ goto error_out;
+ }
+
ret = libxl__domain_make(gc, d_config, &domid, &state->config);
if (ret) {
LOG(ERROR, "cannot make domain: %d", ret);
@@ -903,12 +909,6 @@ static void initiate_domain_create(libxl__egc *egc,
dcs->guest_domid = domid;
dcs->dmss.dm.guest_domid = 0; /* means we haven't spawned */
- ret = libxl__domain_build_info_setdefault(gc, &d_config->b_info);
- if (ret) {
- LOG(ERROR, "Unable to set domain build info defaults");
- goto error_out;
- }
-
if (d_config->c_info.type == LIBXL_DOMAIN_TYPE_HVM &&
(libxl_defbool_val(d_config->b_info.u.hvm.nested_hvm) &&
libxl_defbool_val(d_config->b_info.u.hvm.altp2m))) {
libxl__arch_domain_prepare_config has access to the libxl_domain_build_info struct, so make sure it's properly initialised. Note that prepare_config is called from within libxl__domain_make. This is not a bug at the moment, because prepare_config doesn't access libxl_domain_build_info yet, but this is likely going to change. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> --- Cc: Ian Jackson <ian.jackson@eu.citrix.com> Cc: Ian Campbell <ian.campbell@citrix.com> Cc: Wei Liu <wei.liu2@citrix.com> --- Changes since v3: - Reword commit message to make it clear that prepare_config is called from domain_make, and that the fact that build_info is not initialised is not a bug ATM because prepare_config doesn't make use of it. --- tools/libxl/libxl_create.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)