From: Jiri Denemark Date: Sat, 18 Jun 2016 08:54:50 +0000 (+0200) Subject: cpu: Make x86ModelFromCPU easier to read X-Git-Tag: v2.3.0-rc1~54 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cb8026dbec72ca0644a70f7038615211fbd549de;p=thirdparty%2Flibvirt.git cpu: Make x86ModelFromCPU easier to read Signed-off-by: Jiri Denemark --- diff --git a/src/cpu/cpu_x86.c b/src/cpu/cpu_x86.c index ee5b57d6fc..cf8f17d150 100644 --- a/src/cpu/cpu_x86.c +++ b/src/cpu/cpu_x86.c @@ -1019,21 +1019,28 @@ x86ModelFromCPU(const virCPUDef *cpu, virCPUx86ModelPtr model = NULL; size_t i; + /* host CPU only contains required features; requesting other features + * just returns an empty model + */ + if (cpu->type == VIR_CPU_TYPE_HOST && + policy != VIR_CPU_FEATURE_REQUIRE) + return x86ModelNew(); + if (policy == VIR_CPU_FEATURE_REQUIRE) { if (!(model = x86ModelFind(map, cpu->model))) { virReportError(VIR_ERR_INTERNAL_ERROR, _("Unknown CPU model %s"), cpu->model); - goto error; + return NULL; } - if (!(model = x86ModelCopy(model))) - goto error; - } else if (!(model = x86ModelNew())) { - goto error; - } else if (cpu->type == VIR_CPU_TYPE_HOST) { - return model; + model = x86ModelCopy(model); + } else { + model = x86ModelNew(); } + if (!model) + return NULL; + for (i = 0; i < cpu->nfeatures; i++) { virCPUx86FeaturePtr feature;