From d0498881a04dddd772f9f63b03de80fb4c33d090 Mon Sep 17 00:00:00 2001 From: Michal Privoznik Date: Fri, 1 Jun 2018 08:08:10 +0200 Subject: [PATCH] virQEMUCapsFreeHostCPUModel: Don't always free host cpuData MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This function exists because of 5276ec712a44b36. But it is missing initial check just like virQEMUCapsInitHostCPUModel() has. Signed-off-by: Michal Privoznik Reviewed-by: Ján Tomko --- src/qemu/qemu_capabilities.c | 4 ++++ src/qemu/qemu_capspriv.h | 1 + tests/qemuxml2argvtest.c | 6 ++++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c index f65681bc5e..b20149b15e 100644 --- a/src/qemu/qemu_capabilities.c +++ b/src/qemu/qemu_capabilities.c @@ -2848,10 +2848,14 @@ virQEMUCapsNewHostCPUModel(void) void virQEMUCapsFreeHostCPUModel(virQEMUCapsPtr qemuCaps, + virArch hostArch, virDomainVirtType type) { virQEMUCapsHostCPUDataPtr cpuData = virQEMUCapsGetHostCPUData(qemuCaps, type); + if (!virQEMUCapsGuestIsNative(hostArch, qemuCaps->arch)) + return; + virQEMUCapsHostCPUDataClearModels(cpuData); } diff --git a/src/qemu/qemu_capspriv.h b/src/qemu/qemu_capspriv.h index fea039ef3a..989d183c6c 100644 --- a/src/qemu/qemu_capspriv.h +++ b/src/qemu/qemu_capspriv.h @@ -58,6 +58,7 @@ virQEMUCapsSetArch(virQEMUCapsPtr qemuCaps, void virQEMUCapsFreeHostCPUModel(virQEMUCapsPtr qemuCaps, + virArch hostArch, virDomainVirtType type); void diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c index 8e5504f845..2092b8e458 100644 --- a/tests/qemuxml2argvtest.c +++ b/tests/qemuxml2argvtest.c @@ -388,8 +388,10 @@ testUpdateQEMUCaps(const struct testInfo *info, if (testAddCPUModels(info->qemuCaps, info->skipLegacyCPUs) < 0) goto cleanup; - virQEMUCapsFreeHostCPUModel(info->qemuCaps, VIR_DOMAIN_VIRT_KVM); - virQEMUCapsFreeHostCPUModel(info->qemuCaps, VIR_DOMAIN_VIRT_QEMU); + virQEMUCapsFreeHostCPUModel(info->qemuCaps, caps->host.arch, + VIR_DOMAIN_VIRT_KVM); + virQEMUCapsFreeHostCPUModel(info->qemuCaps, caps->host.arch, + VIR_DOMAIN_VIRT_QEMU); virQEMUCapsInitHostCPUModel(info->qemuCaps, caps->host.arch, VIR_DOMAIN_VIRT_KVM); -- GitLab