Am 17.07.2014 13:03, schrieb Pavel Dovgalyuk:
This patch adds interrupt fields to VMState for correct saving the CPU state.
Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
target-arm/machine.c |5 -
target-i386/machine.c |5 -
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/target-arm/machine.c b/target-arm/machine.c
index 3bcc7cc..29bfc10 100644
--- a/target-arm/machine.c
+++ b/target-arm/machine.c
@@ -218,7 +218,7 @@ static int cpu_post_load(void *opaque, int version_id)
const VMStateDescription vmstate_arm_cpu = {
.name = cpu,
-.version_id = 20,
+.version_id = 21,
.minimum_version_id = 20,
.pre_save = cpu_pre_save,
.post_load = cpu_post_load,
@@ -259,6 +259,9 @@ const VMStateDescription vmstate_arm_cpu = {
VMSTATE_UINT64(env.exception.vaddress, ARMCPU),
VMSTATE_TIMER(gt_timer[GTIMER_PHYS], ARMCPU),
VMSTATE_TIMER(gt_timer[GTIMER_VIRT], ARMCPU),
+/* Fields required by replay */
+VMSTATE_UINT32_V(parent_obj.interrupt_request, ARMCPU, 21),
+VMSTATE_INT32_V(parent_obj.exception_index, ARMCPU, 21),
VMSTATE_END_OF_LIST()
},
.subsections = (VMStateSubsection[]) {
diff --git a/target-i386/machine.c b/target-i386/machine.c
index 16d2f6a..9dfac33 100644
--- a/target-i386/machine.c
+++ b/target-i386/machine.c
@@ -605,7 +605,7 @@ static const VMStateDescription vmstate_msr_hyperv_time =
{
VMStateDescription vmstate_x86_cpu = {
.name = cpu,
-.version_id = 12,
+.version_id = 13,
.minimum_version_id = 3,
.pre_save = cpu_pre_save,
.post_load = cpu_post_load,
@@ -702,6 +702,9 @@ VMStateDescription vmstate_x86_cpu = {
VMSTATE_UINT64_V(env.xcr0, X86CPU, 12),
VMSTATE_UINT64_V(env.xstate_bv, X86CPU, 12),
VMSTATE_YMMH_REGS_VARS(env.ymmh_regs, X86CPU, CPU_NB_REGS, 12),
+/* Fields required by replay */
+VMSTATE_UINT32_V(parent_obj.interrupt_request, X86CPU, 13),
+VMSTATE_INT32_V(parent_obj.exception_index, X86CPU, 13),
VMSTATE_END_OF_LIST()
/* The above list is not sorted /wrt version numbers, watch out! */
},
Instead of messing with parent_obj here and above, can you please add
common CPUState stuff to vmstate_cpu_common in exec.c?
Regards,
Andreas
--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg