aboutsummaryrefslogtreecommitdiff
path: root/target
diff options
context:
space:
mode:
authorJan Kiszka <jan.kiszka@siemens.com>2018-04-03 17:36:11 +0200
committerPaolo Bonzini <pbonzini@redhat.com>2018-06-28 19:05:36 +0200
commit02f7fd25a446a220905c2e5cb0fc3655d7f63b29 (patch)
tree12944dcf54a9965cae2b251b3760a423786ec3b9 /target
parentfc051ae6c42216ca87145106b509fa3bdfa98e00 (diff)
target-i386: Add NMI interception to SVM
Check for SVM interception prior to injecting an NMI. Tested via the Jailhouse hypervisor. Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com> Message-Id: <c65877e9a011ee4962931287e59f502c482b8d0b.1522769774.git.jan.kiszka@web.de> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target')
-rw-r--r--target/i386/seg_helper.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/target/i386/seg_helper.c b/target/i386/seg_helper.c
index 600a4d7586..00301a0c04 100644
--- a/target/i386/seg_helper.c
+++ b/target/i386/seg_helper.c
@@ -1337,6 +1337,7 @@ bool x86_cpu_exec_interrupt(CPUState *cs, int interrupt_request)
ret = true;
} else if ((interrupt_request & CPU_INTERRUPT_NMI) &&
!(env->hflags2 & HF2_NMI_MASK)) {
+ cpu_svm_check_intercept_param(env, SVM_EXIT_NMI, 0, 0);
cs->interrupt_request &= ~CPU_INTERRUPT_NMI;
env->hflags2 |= HF2_NMI_MASK;
do_interrupt_x86_hardirq(env, EXCP02_NMI, 1);