diff options
author | Gleb Natapov <gleb@redhat.com> | 2009-07-01 18:48:09 +0300 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2009-07-01 18:51:48 +0300 |
commit | 67315040e396f762bd19720dce66ffdbb887d8c4 (patch) | |
tree | 944e9439e3a8241642133c83bb7383b6ded373d9 /qemu-kvm-x86.c | |
parent | Fix KVMs GET_SUPPORTED_CPUID feature usage (diff) | |
download | qemu-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.c | 2 |
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); } |