[HVM][SVM] Don't BUG when VMRUN exitcode==-1, just crash the domain.
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 30 Jun 2006 09:13:17 +0000 (10:13 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 30 Jun 2006 09:13:17 +0000 (10:13 +0100)
If there's any consistency problems in the VMCB, the VMRUN will return
an exitcode of -1 to indicate that the guest-state is "bad". Prior to
this change, it would cause the hypervisor to reboot. This is not at
all necessary - the VMCB may be bad, but the system is most likely
still intact. [In particular, a guest could cause a crash of the
system by setting up PAE with an invalid set of PDPE's, which is
definitely not a desired behaviour]

Now also print out the VMCB, as that MAY help identify the cause of
the exitcode of -1.

Signed-off-by: Mats Petersson <mats.petersson@amd.com>
xen/arch/x86/hvm/svm/svm.c

index db628b22108b63f254079245b6401d2847201135..29f74e8a0f89c6f96ba5c215a53814b3126f5f00 100644 (file)
@@ -2697,9 +2697,9 @@ asmlinkage void svm_vmexit_handler(struct cpu_user_regs regs)
 
     if (exit_reason == -1)
     {
+        svm_dump_vmcb(__func__, vmcb);
         printk("%s: exit_reason == -1 - Did someone clobber the VMCB\n", 
                 __func__);
-        BUG();
         domain_crash_synchronous();
     }