|
|
218e99 |
From c9b5ec980523f458cf0e4cfd9f9d014e853f15aa Mon Sep 17 00:00:00 2001
|
|
|
218e99 |
From: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
218e99 |
Date: Wed, 31 Jul 2013 08:01:44 +0200
|
|
|
218e99 |
Subject: qemu-kvm: Fix migration from older version due to i8254 changes
|
|
|
218e99 |
|
|
|
218e99 |
Message-id: <1375201922-6794-2-git-send-email-armbru@redhat.com>
|
|
|
218e99 |
Patchwork-id: 52815
|
|
|
218e99 |
O-Subject: [RHEL-7 PATCH v3 01/15] qemu-kvm: Fix migration from older version due to i8254 changes
|
|
|
218e99 |
Bugzilla: 983991
|
|
|
218e99 |
RH-Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
218e99 |
RH-Acked-by: Bandan Das <bsd@redhat.com>
|
|
|
218e99 |
RH-Acked-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
218e99 |
|
|
|
218e99 |
Old qemu-kvm already contained an equivalent field to i8254's
|
|
|
218e99 |
irq_disabled. We therefore have to remove upstream's version restriction
|
|
|
218e99 |
here to allow migration from older versions.
|
|
|
218e99 |
|
|
|
218e99 |
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
|
|
|
218e99 |
Signed-off-by: Avi Kivity <avi@redhat.com>
|
|
|
218e99 |
(cherry picked from commit 81bdec908fb2be0ccaff1d4ee67956c509e440ad)
|
|
|
218e99 |
|
|
|
218e99 |
Conflicts:
|
|
|
218e99 |
hw/i8254.c
|
|
|
218e99 |
|
|
|
218e99 |
Picked from qemu-kvm-1.1.
|
|
|
218e99 |
|
|
|
218e99 |
qemu-kvm-0.11.0 commit f69b3e2 added PITState member flags, added it
|
|
|
218e99 |
to migration section "i8254", and bumped its version to 2.
|
|
|
218e99 |
|
|
|
218e99 |
qemu v0.12.0 commit 5122b43 ported i8254 to VMState, and also bumped
|
|
|
218e99 |
section version to 2. Version 2 now means different things in qemu
|
|
|
218e99 |
and qemu-kvm.
|
|
|
218e99 |
|
|
|
218e99 |
This got merged into qemu-kvm-0.12.0 in commit f4f2edc. The merge
|
|
|
218e99 |
added migration of flags to qemu's code. Yet another version of
|
|
|
218e99 |
version 2. This is what we got in RHEL-6.
|
|
|
218e99 |
|
|
|
218e99 |
qemu v1.1.0 commit ce967e2 added PITState member irq_disabled,
|
|
|
218e99 |
included it in migration section "i8254", and bumped its version to 3.
|
|
|
218e99 |
Because qemu's irq_disabled is compatible with qemu-kvm's flags,
|
|
|
218e99 |
qemu's version 3 is migration compatible with the latest instance of
|
|
|
218e99 |
qemu-kvm's version 2.
|
|
|
218e99 |
|
|
|
218e99 |
When this got merged into qemu-kvm-1.1.0, it changed qemu-kvm's
|
|
|
218e99 |
version 2 to no longer include flags / irq_disabled. Commit 81bdec9
|
|
|
218e99 |
reverted the change of version 2.
|
|
|
218e99 |
|
|
|
218e99 |
We need to do the same to enable incoming migration from RHEL-6.
|
|
|
218e99 |
|
|
|
218e99 |
Signed-off-by: Markus Armbruster <armbru@redhat.com>
|
|
|
218e99 |
|
|
|
218e99 |
diff --git a/hw/timer/i8254_common.c b/hw/timer/i8254_common.c
|
|
|
218e99 |
index 5342df4..f6f9d26 100644
|
|
|
218e99 |
--- a/hw/timer/i8254_common.c
|
|
|
218e99 |
+++ b/hw/timer/i8254_common.c
|
|
|
218e99 |
@@ -275,7 +275,7 @@ static const VMStateDescription vmstate_pit_common = {
|
|
|
218e99 |
.pre_save = pit_dispatch_pre_save,
|
|
|
218e99 |
.post_load = pit_dispatch_post_load,
|
|
|
218e99 |
.fields = (VMStateField[]) {
|
|
|
218e99 |
- VMSTATE_UINT32_V(channels[0].irq_disabled, PITCommonState, 3),
|
|
|
218e99 |
+ VMSTATE_UINT32(channels[0].irq_disabled, PITCommonState), /* qemu-kvm's v2 had 'flags' here */
|
|
|
218e99 |
VMSTATE_STRUCT_ARRAY(channels, PITCommonState, 3, 2,
|
|
|
218e99 |
vmstate_pit_channel, PITChannelState),
|
|
|
218e99 |
VMSTATE_INT64(channels[0].next_transition_time,
|