summaryrefslogtreecommitdiff
path: root/cpu-exec.c
diff options
context:
space:
mode:
authorsyeon.hwang <syeon.hwang@samsung.com>2012-10-29 19:39:12 +0900
committersyeon.hwang <syeon.hwang@samsung.com>2012-10-29 19:39:12 +0900
commitbd3025afa216f149763239082dcfaa3023daad08 (patch)
tree6d8513c95acbca81eaa1207f2c4bb277c1014c04 /cpu-exec.c
parentccf696672fb1abcdc88ad2b7b1252f49fb24bc2a (diff)
downloadqemu-bd3025afa216f149763239082dcfaa3023daad08.tar.gz
qemu-bd3025afa216f149763239082dcfaa3023daad08.tar.bz2
qemu-bd3025afa216f149763239082dcfaa3023daad08.zip
HAX: Apply HAX patch from intel
Diffstat (limited to 'cpu-exec.c')
-rw-r--r--cpu-exec.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/cpu-exec.c b/cpu-exec.c
index d7bcde0734..0a0858279d 100644
--- a/cpu-exec.c
+++ b/cpu-exec.c
@@ -324,16 +324,21 @@ int cpu_exec(CPUArchState *env)
cpu_loop_exit(env);
} else if (interrupt_request & CPU_INTERRUPT_SIPI) {
do_cpu_sipi(x86_env_get_cpu(env));
+
} else if (env->hflags2 & HF2_GIF_MASK) {
if ((interrupt_request & CPU_INTERRUPT_SMI) &&
!(env->hflags & HF_SMM_MASK)) {
cpu_svm_check_intercept_param(env, SVM_EXIT_SMI,
0);
env->interrupt_request &= ~CPU_INTERRUPT_SMI;
+#ifdef CONFIG_HAX
+ if (hax_enabled())
+ env->hax_vcpu->resync = 1;
+#endif
do_smm_enter(env);
next_tb = 0;
} else if ((interrupt_request & CPU_INTERRUPT_NMI) &&
- !(env->hflags2 & HF2_NMI_MASK)) {
+ !(env->hflags2 & HF2_NMI_MASK)) {
env->interrupt_request &= ~CPU_INTERRUPT_NMI;
env->hflags2 |= HF2_NMI_MASK;
do_interrupt_x86_hardirq(env, EXCP02_NMI, 1);