cpu_x86: Add support for passing guest CPUs to virCPUx86Baseline

Modern host CPU models from domain capabilities XMLs are reported as
guest CPU definitions with feature policies. This patch updates
virCPUx86Baseline to properly handle such CPU models.

Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Jiri Denemark 2018-05-15 11:27:20 +02:00
parent 5ed6cf96bc
commit 388a5c1400

View File

@ -2482,13 +2482,12 @@ virCPUx86Baseline(virCPUDefPtr *cpus,
if (!(map = virCPUx86GetMap()))
goto error;
if (!(base_model = x86ModelFromCPU(cpus[0], map, VIR_CPU_FEATURE_REQUIRE)))
if (!(base_model = x86ModelFromCPU(cpus[0], map, -1)))
goto error;
if (VIR_ALLOC(cpu) < 0)
goto error;
cpu->arch = cpus[0]->arch;
cpu->type = VIR_CPU_TYPE_GUEST;
cpu->match = VIR_CPU_MATCH_EXACT;
@ -2513,7 +2512,7 @@ virCPUx86Baseline(virCPUDefPtr *cpus,
}
}
if (!(model = x86ModelFromCPU(cpus[i], map, VIR_CPU_FEATURE_REQUIRE)))
if (!(model = x86ModelFromCPU(cpus[i], map, -1)))
goto error;
if (cpus[i]->vendor && model->vendor &&
@ -2570,8 +2569,6 @@ virCPUx86Baseline(virCPUDefPtr *cpus,
if (!outputVendor)
VIR_FREE(cpu->vendor);
cpu->arch = VIR_ARCH_NONE;
cleanup:
x86ModelFree(base_model);