[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] hvm svm: Inject #UD exception if guest tries to execute any SVM-related



# HG changeset patch
# User Keir Fraser <keir@xxxxxxxxxxxxx>
# Date 1175097125 -3600
# Node ID ffb9dda429461442b0e727775a810b352ec74c9c
# Parent  b6eaca0bcee14e2f10815aeeac51aaa248942fd5
hvm svm: Inject #UD exception if guest tries to execute any SVM-related
function (except VMMCALL).
Signed-off-by: Mats Petersson <mats.petersson@xxxxxxx>
---
 xen/arch/x86/hvm/svm/svm.c |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)

diff -r b6eaca0bcee1 -r ffb9dda42946 xen/arch/x86/hvm/svm/svm.c
--- a/xen/arch/x86/hvm/svm/svm.c        Wed Mar 28 15:04:14 2007 +0000
+++ b/xen/arch/x86/hvm/svm/svm.c        Wed Mar 28 16:52:05 2007 +0100
@@ -3156,14 +3156,22 @@ asmlinkage void svm_vmexit_handler(struc
         hvm_triple_fault();
         break;
 
+    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;
+
     case VMEXIT_NPF:
-    {
         regs->error_code = vmcb->exitinfo1;
         if ( !svm_do_nested_pgfault(vmcb->exitinfo2, regs) ) {
             domain_crash(v->domain);
         }
         break;
-    }
 
     default:
     exit_and_crash:

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.