summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGleb Natapov <gleb@redhat.com>2009-07-01 18:48:09 +0300
committerAvi Kivity <avi@redhat.com>2009-07-01 18:51:48 +0300
commit67315040e396f762bd19720dce66ffdbb887d8c4 (patch)
tree944e9439e3a8241642133c83bb7383b6ded373d9 /qemu-kvm-x86.c
parentFix KVMs GET_SUPPORTED_CPUID feature usage (diff)
downloadqemu-kvm-67315040e396f762bd19720dce66ffdbb887d8c4.tar.gz
qemu-kvm-67315040e396f762bd19720dce66ffdbb887d8c4.tar.bz2
qemu-kvm-67315040e396f762bd19720dce66ffdbb887d8c4.zip
Update registers after INIT/SIPI
Load updated register into kernel after INIT/SIPI. Otherwise vcpu starts at the wrong address after SIPI. Signed-off-by: Gleb Natapov <gleb@redhat.com> Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'qemu-kvm-x86.c')
-rw-r--r--qemu-kvm-x86.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/qemu-kvm-x86.c b/qemu-kvm-x86.c
index a5c72e918..d6735c1d6 100644
--- a/qemu-kvm-x86.c
+++ b/qemu-kvm-x86.c
@@ -1579,8 +1579,10 @@ uint32_t kvm_arch_get_supported_cpuid(CPUState *env, uint32_t function,
void kvm_arch_process_irqchip_events(CPUState *env)
{
+ kvm_arch_save_regs(env);
if (env->interrupt_request & CPU_INTERRUPT_INIT)
do_cpu_init(env);
if (env->interrupt_request & CPU_INTERRUPT_SIPI)
do_cpu_sipi(env);
+ kvm_arch_load_regs(env);
}