[PATCH] qemu: Fix compilation error when enum variable size differs from 'int'

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

 



Since commit bcd9a564b631aa virDomainNumatuneGetMode returns the value
via a pointer rather than in the return value. The change triggered
problems with platforms where the compiler decides to use a data type of
size different than integer at the point where we typecast it.

Work around the issue by using an intermediate variable of the correct
type that gets casted back by the default typecasting rules.
---
 src/qemu/qemu_driver.c | 10 ++++++----
 1 file changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index aa0acde..2b9f125 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -10566,14 +10566,16 @@ qemuDomainGetNumaParameters(virDomainPtr dom,
         virMemoryParameterPtr param = &params[i];

         switch (i) {
-        case 0: /* fill numa mode here */
+        case 0: {  /* fill numa mode here */
+            virDomainNumatuneMemMode tmp;
+            virDomainNumatuneGetMode(def->numa, -1, &tmp);
+
             if (virTypedParameterAssign(param, VIR_DOMAIN_NUMA_MODE,
-                                        VIR_TYPED_PARAM_INT, 0) < 0)
+                                        VIR_TYPED_PARAM_INT, tmp) < 0)
                 goto cleanup;

-            virDomainNumatuneGetMode(def->numa, -1,
-                                     (virDomainNumatuneMemMode *) &param->value.i);
             break;
+        }

         case 1: /* fill numa nodeset here */
             nodeset = virDomainNumatuneFormatNodeset(def->numa, NULL, -1);
-- 
2.4.1

--
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]