[libvirt] [PATCH v2 05/31] qemu: Copy CPU models in virQEMUCapsGetCPUDefinitions

Ján Tomko jtomko at redhat.com
Wed Oct 16 10:38:37 UTC 2019


On Tue, Oct 15, 2019 at 05:34:41PM +0200, Jiri Denemark wrote:
>Rather than returning a direct pointer the list stored in qemuCaps the
>function now creates a new copy of the CPU models list.
>
>The main purpose of this seemingly useless change is to update callers
>to free the result returned by virQEMUCapsGetCPUDefinitions because the
>internals of this function will change significantly in the following
>patches.
>
>Signed-off-by: Jiri Denemark <jdenemar at redhat.com>
>Reviewed-by: Ján Tomko <jtomko at redhat.com>
>---
>
>Notes:
>    Version 2:
>    - no change
>
> src/qemu/qemu_capabilities.c | 23 ++++++++++++++++++-----
> src/qemu/qemu_driver.c       |  2 +-
> src/qemu/qemu_process.c      |  7 +++++--
> tests/cputest.c              |  1 -
> 4 files changed, 24 insertions(+), 9 deletions(-)
>

Reviewed-by: Ján Tomko <jtomko at redhat.com>
with the following squashed in:

diff --git a/src/conf/domain_capabilities.h b/src/conf/domain_capabilities.h
index 264c7fc429..36500435fd 100644
--- a/src/conf/domain_capabilities.h
+++ b/src/conf/domain_capabilities.h
@@ -139,6 +139,8 @@ struct _virDomainCapsCPUModels {
     virDomainCapsCPUModelPtr models;
 };
 
+G_DEFINE_AUTOPTR_CLEANUP_FUNC(virDomainCapsCPUModels, virObjectUnref);
+
 typedef struct _virDomainCapsCPU virDomainCapsCPU;
 typedef virDomainCapsCPU *virDomainCapsCPUPtr;
 struct _virDomainCapsCPU {
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index a875896a73..e1750751b4 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -3132,7 +3132,7 @@ virQEMUCapsInitCPUModelX86(virQEMUCapsPtr qemuCaps,
                            virCPUDefPtr cpu,
                            bool migratable)
 {
-    VIR_AUTOUNREF(virDomainCapsCPUModelsPtr) cpuModels = NULL;
+    g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
     virCPUDataPtr data = NULL;
     int ret = -1;
 
@@ -3227,7 +3227,7 @@ virQEMUCapsInitHostCPUModel(virQEMUCapsPtr qemuCaps,
     if ((rc = virQEMUCapsInitCPUModel(qemuCaps, type, cpu, false)) < 0) {
         goto error;
     } else if (rc == 1) {
-        VIR_AUTOUNREF(virDomainCapsCPUModelsPtr) cpuModels = NULL;
+        g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
 
         VIR_DEBUG("No host CPU model info from QEMU; probing host CPU directly");
 
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 78ba1f6f04..d95bf92cfd 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -13913,7 +13913,7 @@ qemuConnectBaselineHypervisorCPU(virConnectPtr conn,
     virQEMUCapsPtr qemuCaps = NULL;
     virArch arch;
     virDomainVirtType virttype;
-    VIR_AUTOUNREF(virDomainCapsCPUModelsPtr) cpuModels = NULL;
+    g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
     bool migratable;
     virCPUDefPtr cpu = NULL;
     char *cpustr = NULL;
diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
index 539ab7ae33..9135a90a0d 100644
--- a/src/qemu/qemu_process.c
+++ b/src/qemu/qemu_process.c
@@ -6122,7 +6122,7 @@ qemuProcessUpdateGuestCPU(virDomainDefPtr def,
 
     /* nothing to update for host-passthrough */
     if (def->cpu->mode != VIR_CPU_MODE_HOST_PASSTHROUGH) {
-        VIR_AUTOUNREF(virDomainCapsCPUModelsPtr) cpuModels = NULL;
+        g_autoptr(virDomainCapsCPUModels) cpuModels = NULL;
 
         if (def->cpu->check == VIR_CPU_CHECK_PARTIAL &&
             virCPUCompare(caps->host.arch,

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20191016/6b82bba8/attachment-0001.sig>


More information about the libvir-list mailing list