]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
virQEMUCapsFreeHostCPUModel: Don't always free host cpuData
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 1 Jun 2018 06:08:10 +0000 (08:08 +0200)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 6 Jun 2018 11:27:18 +0000 (13:27 +0200)
This function exists because of 5276ec712a44b36. But it is
missing initial check just like virQEMUCapsInitHostCPUModel()
has.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_capabilities.c
src/qemu/qemu_capspriv.h
tests/qemuxml2argvtest.c

index f65681bc5e5552d2f16f9a63aa65b9740e27005d..b20149b15e92f6a4041dbabf7d8e65ee252b63b0 100644 (file)
@@ -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);
 }
 
index fea039ef3aa6d9b048f04f942e2e696975d23453..989d183c6c274058b5ed68bd633637af0d0e55eb 100644 (file)
@@ -58,6 +58,7 @@ virQEMUCapsSetArch(virQEMUCapsPtr qemuCaps,
 
 void
 virQEMUCapsFreeHostCPUModel(virQEMUCapsPtr qemuCaps,
+                            virArch hostArch,
                             virDomainVirtType type);
 
 void
index 8e5504f8453a7d80918225f652f83e3e3c759136..2092b8e458a5f825d892a6907cf5180091d44438 100644 (file)
@@ -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);