[libvirt PATCH 3/6] libxl: capsInitCPU: fail if we can't initialize host features

Ján Tomko jtomko at redhat.com
Mon Sep 6 14:58:46 UTC 2021


Introduced by:
  commit 17322e551861a5bc4dd464a7c5399204dc8c7caa
      libxl: describe host cpu features based on hwcaps
with the justification that libxl_hwcaps does not have a stable
format across all version.

Even though the code would return '0' in the case of such failure,
it frees the 'cpu' pointer, while keeping it in caps->host.
Based on that, assume it does not happen in current usage.

Signed-off-by: Ján Tomko <jtomko at redhat.com>
---
 src/libxl/libxl_capabilities.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/src/libxl/libxl_capabilities.c b/src/libxl/libxl_capabilities.c
index d98109ea86..9d0ed921bd 100644
--- a/src/libxl/libxl_capabilities.c
+++ b/src/libxl/libxl_capabilities.c
@@ -166,16 +166,17 @@ libxlCapsInitCPU(virCaps *caps, libxl_physinfo *phy_info)
     cpu->threads = phy_info->threads_per_core;
     cpu->dies = 1;
     cpu->sockets = phy_info->nr_cpus / (cpu->cores * cpu->threads);
-    caps->host.cpu = cpu;
-
-    ret = 0;
 
     if (!(data = libxlCapsNodeData(cpu, phy_info->hw_cap)) ||
         cpuDecode(cpu, data, NULL) < 0) {
-        VIR_WARN("Failed to initialize host cpu features");
+        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                       _("Failed to initialize host cpu features"));
         goto error;
     }
 
+    caps->host.cpu = cpu;
+    ret = 0;
+
  cleanup:
     virCPUDataFree(data);
 
-- 
2.31.1




More information about the libvir-list mailing list