From e2a7f41249e8bf3293a8cd55877d2599fbf0c33f Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Thu, 6 Dec 2007 16:28:00 +0000 Subject: [PATCH] svm: Intercept and disallow MONITOR/MWAIT. Signed-off-by: Keir Fraser xen-unstable changeset: 16366:837f83225153547109480d63b3386cb8f65b5274 xen-unstable date: Fri Nov 09 12:08:37 2007 +0000 --- xen/arch/x86/hvm/svm/svm.c | 3 ++- xen/arch/x86/hvm/svm/vmcb.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index 90b8b770d..9967d7c43 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -2587,13 +2587,14 @@ asmlinkage void svm_vmexit_handler(struct cpu_user_regs *regs) hvm_triple_fault(); break; + case VMEXIT_MONITOR: + case VMEXIT_MWAIT: case VMEXIT_VMRUN: case VMEXIT_VMLOAD: case VMEXIT_VMSAVE: case VMEXIT_STGI: case VMEXIT_CLGI: case VMEXIT_SKINIT: - /* Report "Invalid opcode" on any VM-operation except VMMCALL */ svm_inject_exception(v, TRAP_invalid_op, 0, 0); break; diff --git a/xen/arch/x86/hvm/svm/vmcb.c b/xen/arch/x86/hvm/svm/vmcb.c index ed6b34f82..b8df6f90e 100644 --- a/xen/arch/x86/hvm/svm/vmcb.c +++ b/xen/arch/x86/hvm/svm/vmcb.c @@ -125,7 +125,8 @@ static int construct_vmcb(struct vcpu *v) GENERAL2_INTERCEPT_VMLOAD | GENERAL2_INTERCEPT_VMSAVE | GENERAL2_INTERCEPT_STGI | GENERAL2_INTERCEPT_CLGI | GENERAL2_INTERCEPT_SKINIT | GENERAL2_INTERCEPT_RDTSCP | - GENERAL2_INTERCEPT_WBINVD; + GENERAL2_INTERCEPT_WBINVD | GENERAL2_INTERCEPT_MONITOR | + GENERAL2_INTERCEPT_MWAIT; /* Intercept all debug-register writes. */ vmcb->dr_intercepts = ~0u; -- 2.39.5