summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAvi Kivity <avi@redhat.com>2009-06-25 17:33:52 +0300
committerAvi Kivity <avi@redhat.com>2009-06-25 17:33:52 +0300
commit3c4cf0a9bb1c2cd5639374ca4e0c686ba93931d3 (patch)
tree47f17c79e03bcd19804367ada9c0414fdea872be /cpu-exec.c
parentMerge commit '406c8df3a96414c2c9602081727f0782369de699' into upstream-merge (diff)
parentHandle init/sipi in a main cpu exec loop. (v2) (diff)
downloadqemu-kvm-3c4cf0a9bb1c2cd5639374ca4e0c686ba93931d3.tar.gz
qemu-kvm-3c4cf0a9bb1c2cd5639374ca4e0c686ba93931d3.tar.bz2
qemu-kvm-3c4cf0a9bb1c2cd5639374ca4e0c686ba93931d3.zip
Merge commit 'b09ea7d55cfab5a75912bb56ed1fcd757604a759' into upstream-merge
* commit 'b09ea7d55cfab5a75912bb56ed1fcd757604a759': Handle init/sipi in a main cpu exec loop. (v2) Add pci_bus_reset() function. virtio: add support for indirect ring entries virtio: make vring_desc_*() take phys addrs Add O_BINARY to open call in net_dump_init. Conflicts: hw/apic.c Signed-off-by: Avi Kivity <avi@redhat.com>
Diffstat (limited to 'cpu-exec.c')
-rw-r--r--cpu-exec.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/cpu-exec.c b/cpu-exec.c
index 71102958a..ffa92f1fb 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -387,7 +387,14 @@ int cpu_exec(CPUState *env1)
}
#endif
#if defined(TARGET_I386)
- if (env->hflags2 & HF2_GIF_MASK) {
+ if (interrupt_request & CPU_INTERRUPT_INIT) {
+ svm_check_intercept(SVM_EXIT_INIT);
+ do_cpu_init(env);
+ env->exception_index = EXCP_HALTED;
+ cpu_loop_exit();
+ } else if (interrupt_request & CPU_INTERRUPT_SIPI) {
+ do_cpu_sipi(env);
+ } else if (env->hflags2 & HF2_GIF_MASK) {
if ((interrupt_request & CPU_INTERRUPT_SMI) &&
!(env->hflags & HF_SMM_MASK)) {
svm_check_intercept(SVM_EXIT_SMI);