[PATCH v3 10/20] cpu: Use ppc64Compute() to implement ppc64DriverCompare()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This ensures comparison of two CPU definitions will be consistent
regardless of the fact that it is performed using cpuCompare() or
cpuGuestData(). The x86 driver uses the same exact code.
---
 src/cpu/cpu_ppc64.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/cpu/cpu_ppc64.c b/src/cpu/cpu_ppc64.c
index 0769956..efac739 100644
--- a/src/cpu/cpu_ppc64.c
+++ b/src/cpu/cpu_ppc64.c
@@ -438,16 +438,22 @@ ppc64DriverCompare(virCPUDefPtr host,
                    virCPUDefPtr cpu,
                    bool failIncompatible)
 {
-    if ((cpu->arch == VIR_ARCH_NONE || host->arch == cpu->arch) &&
-        STREQ(host->model, cpu->model))
-        return VIR_CPU_COMPARE_IDENTICAL;
+    virCPUCompareResult ret;
+    char *message = NULL;
 
-    if (failIncompatible) {
-        virReportError(VIR_ERR_CPU_INCOMPATIBLE, NULL);
-        return VIR_CPU_COMPARE_ERROR;
-    } else {
-        return VIR_CPU_COMPARE_INCOMPATIBLE;
+    ret = ppc64Compute(host, cpu, NULL, &message);
+
+    if (failIncompatible && ret == VIR_CPU_COMPARE_INCOMPATIBLE) {
+        ret = VIR_CPU_COMPARE_ERROR;
+        if (message) {
+            virReportError(VIR_ERR_CPU_INCOMPATIBLE, "%s", message);
+        } else {
+            virReportError(VIR_ERR_CPU_INCOMPATIBLE, NULL);
+        }
     }
+    VIR_FREE(message);
+
+    return ret;
 }
 
 static int
-- 
2.4.3

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]