The SVM event injection mechanism for NMI and INTRs should not
be handled as software interrupts.
Bernhard Kauer
Index: target-i386/helper.c
--- target-i386/helper.c 24 Dec 2007 13:36:00 -0000 1.98
+++ target-i386/helper.c 23 Jan 2008 22:37:49 -0000
@@ -4124,7 +4193,7 @@
case SVM_EVTINJ_TYPE_INTR:
env->exception_index = vector;
env->error_code = event_inj_err;
- env->exception_is_int = 1;
+ env->exception_is_int = 0;
env->exception_next_eip = -1;
if (loglevel & CPU_LOG_TB_IN_ASM)
fprintf(logfile, "INTR");
@@ -4132,7 +4201,7 @@
case SVM_EVTINJ_TYPE_NMI:
env->exception_index = vector;
env->error_code = event_inj_err;
- env->exception_is_int = 1;
+ env->exception_is_int = 0;
env->exception_next_eip = EIP;
if (loglevel & CPU_LOG_TB_IN_ASM)
fprintf(logfile, "NMI");