diff --git a/src/conf/domain_capabilities.c b/src/conf/domain_capabilities.c index fb2d696449..bb6742359b 100644 --- a/src/conf/domain_capabilities.c +++ b/src/conf/domain_capabilities.c @@ -176,7 +176,8 @@ virDomainCapsCPUModelsCopy(virDomainCapsCPUModelsPtr old) virDomainCapsCPUModelsPtr virDomainCapsCPUModelsFilter(virDomainCapsCPUModelsPtr old, - const char **models) + const char **models, + const char **blacklist) { virDomainCapsCPUModelsPtr cpuModels; size_t i; @@ -188,6 +189,9 @@ virDomainCapsCPUModelsFilter(virDomainCapsCPUModelsPtr old, if (models && !virStringListHasString(models, old->models[i].name)) continue; + if (blacklist && virStringListHasString(blacklist, old->models[i].name)) + continue; + if (virDomainCapsCPUModelsAdd(cpuModels, old->models[i].name, -1, old->models[i].usable) < 0) diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h index 13a65e3516..82183c4524 100644 --- a/src/conf/domain_capabilities.h +++ b/src/conf/domain_capabilities.h @@ -167,7 +167,8 @@ virDomainCapsPtr virDomainCapsNew(const char *path, virDomainCapsCPUModelsPtr virDomainCapsCPUModelsNew(size_t nmodels); virDomainCapsCPUModelsPtr virDomainCapsCPUModelsCopy(virDomainCapsCPUModelsPtr old); virDomainCapsCPUModelsPtr virDomainCapsCPUModelsFilter(virDomainCapsCPUModelsPtr old, - const char **models); + const char **models, + const char **blacklist); int virDomainCapsCPUModelsAddSteal(virDomainCapsCPUModelsPtr cpuModels, char **name, virDomainCapsCPUUsable usable); diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index 9e3d10f702..3581c2d723 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -4955,6 +4955,7 @@ virQEMUCapsFillDomainCPUCaps(virCapsPtr caps, VIR_CPU_MODE_CUSTOM)) { virDomainCapsCPUModelsPtr filtered = NULL; char **models = NULL; + const char *blacklist[] = { "host", NULL }; if (virCPUGetModels(domCaps->arch, &models) >= 0) { virDomainCapsCPUModelsPtr cpus; @@ -4965,7 +4966,8 @@ virQEMUCapsFillDomainCPUCaps(virCapsPtr caps, cpus = qemuCaps->tcgCPUModels; filtered = virDomainCapsCPUModelsFilter(cpus, - (const char **) models); + (const char **) models, + blacklist); virStringListFree(models); } domCaps->cpu.custom = filtered; diff --git a/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml index 0b5a4379a1..76aee83ba1 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0-gicv2-virt.aarch64.xml @@ -38,7 +38,6 @@ sa1110 arm1176 cortex-a53 - host sa1100 pxa270-c5 cortex-a9 diff --git a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml index 201f9e0d7b..ca511f48d8 100644 --- a/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml +++ b/tests/domaincapsschemadata/qemu_2.6.0.aarch64.xml @@ -38,7 +38,6 @@ sa1110 arm1176 cortex-a53 - host sa1100 pxa270-c5 cortex-a9