aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2009-12-08 17:54:55 +0100
committerAnthony Liguori <aliguori@us.ibm.com>2009-12-12 07:59:39 -0600
commit4d6e3ac5d411c461d0fb4b1cd2ace854963c9e30 (patch)
treeca931064e0124d0a0590b104de2603ce2ba3eed4
parentbd9d30640c3c2489175fd9ddd5459c69f94688f8 (diff)
downloadqemu-4d6e3ac5d411c461d0fb4b1cd2ace854963c9e30.zip
qemu-4d6e3ac5d411c461d0fb4b1cd2ace854963c9e30.tar.gz
qemu-4d6e3ac5d411c461d0fb4b1cd2ace854963c9e30.tar.bz2
kvm: x86: Save/restore exception_index
As KVM now makes use of exception_index to keep pending exceptions, we have to save&restore this field as well. NOTE: We have to nail the arch-independent exception_index down to a certain bit width for proper vmstate processing, namely to 32 bit. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
-rw-r--r--cpu-defs.h2
-rw-r--r--target-i386/machine.c1
2 files changed, 2 insertions, 1 deletions
diff --git a/cpu-defs.h b/cpu-defs.h
index 95068b5..51dc436 100644
--- a/cpu-defs.h
+++ b/cpu-defs.h
@@ -179,7 +179,7 @@ typedef struct CPUWatchpoint {
\
/* Core interrupt code */ \
jmp_buf jmp_env; \
- int exception_index; \
+ int32_t exception_index; \
\
CPUState *next_cpu; /* next CPU sharing TB cache */ \
int cpu_index; /* CPU index (informative) */ \
diff --git a/target-i386/machine.c b/target-i386/machine.c
index cdc8898..ab4633e 100644
--- a/target-i386/machine.c
+++ b/target-i386/machine.c
@@ -453,6 +453,7 @@ static const VMStateDescription vmstate_cpu = {
VMSTATE_UINT8_V(nmi_pending, CPUState, 11),
VMSTATE_UINT8_V(has_error_code, CPUState, 11),
VMSTATE_UINT32_V(sipi_vector, CPUState, 11),
+ VMSTATE_INT32_V(exception_index, CPUState, 11),
/* MCE */
VMSTATE_UINT64_V(mcg_cap, CPUState, 10),
VMSTATE_UINT64_V(mcg_status, CPUState, 10),