Patchwork [3/4] i8254: Fix migration from qemu-kvm < 1.1

login
register
mail settings
Submitter Cole Robinson
Date Feb. 19, 2013, 10:40 p.m.
Message ID <8169003520d4cf66a1845206f363e715ca3b3bc8.1361313340.git.crobinso@redhat.com>
Download mbox | patch
Permalink /patch/221913/
State New
Headers show

Comments

Cole Robinson - Feb. 19, 2013, 10:40 p.m.
qemu-kvm commit 81bdec908fb2be0ccaff1d4ee67956c509e440ad did this,
but the logic can't be carried unconditionally in qemu.git without
breaking migration from qemu < 1.1.

Conditionalize it with --enable-migrate-from-qemu-kvm

Signed-off-by: Cole Robinson <crobinso@redhat.com>
---
 hw/i8254_common.c | 8 ++++++++
 1 file changed, 8 insertions(+)

Patch

diff --git a/hw/i8254_common.c b/hw/i8254_common.c
index 8c2e45a..072fa09 100644
--- a/hw/i8254_common.c
+++ b/hw/i8254_common.c
@@ -275,7 +275,15 @@  static const VMStateDescription vmstate_pit_common = {
     .pre_save = pit_dispatch_pre_save,
     .post_load = pit_dispatch_post_load,
     .fields = (VMStateField[]) {
+#ifdef CONFIG_MIGRATE_FROM_QEMU_KVM
+        /* qemu-kvm version_id=2 had 'flags' here which is equivalent
+         * This fixes incoming migration from qemu-kvm 1.0, but breaks
+         * incoming migration from qemu < 1.1
+         */
+        VMSTATE_UINT32(channels[0].irq_disabled, PITCommonState),
+#else
         VMSTATE_UINT32_V(channels[0].irq_disabled, PITCommonState, 3),
+#endif
         VMSTATE_STRUCT_ARRAY(channels, PITCommonState, 3, 2,
                              vmstate_pit_channel, PITChannelState),
         VMSTATE_INT64(channels[0].next_transition_time,