ia64/xen-unstable

changeset 10551:3c09a6b27b14

[HVM][SVM] Clean up double-fault handling.

Signed-off-by: Tom Woller <thomas.woller@amd.com>
author kaf24@firebug.cl.cam.ac.uk
date Wed Jun 28 10:03:24 2006 +0100 (2006-06-28)
parents 2966233d180d
children e5cf18c05e8b
files xen/arch/x86/hvm/svm/svm.c
line diff
     1.1 --- a/xen/arch/x86/hvm/svm/svm.c	Wed Jun 28 10:02:27 2006 +0100
     1.2 +++ b/xen/arch/x86/hvm/svm/svm.c	Wed Jun 28 10:03:24 2006 +0100
     1.3 @@ -47,7 +47,6 @@
     1.4  #include <asm/shadow_64.h>
     1.5  #endif
     1.6  #include <public/sched.h>
     1.7 -#include <public/hvm/ioreq.h>
     1.8  
     1.9  #define SVM_EXTRA_DEBUG
    1.10  
    1.11 @@ -66,8 +65,6 @@ extern void send_pio_req(struct cpu_user
    1.12  extern int svm_instrlen(struct cpu_user_regs *regs, int mode);
    1.13  extern void svm_dump_inst(unsigned long eip);
    1.14  extern int svm_dbg_on;
    1.15 -void svm_manual_event_injection32(struct vcpu *v, struct cpu_user_regs *regs, 
    1.16 -        int vector, int has_code);
    1.17  void svm_dump_regs(const char *from, struct cpu_user_regs *regs);
    1.18  
    1.19  static void svm_relinquish_guest_resources(struct domain *d);
    1.20 @@ -2804,8 +2801,11 @@ asmlinkage void svm_vmexit_handler(struc
    1.21      }
    1.22  
    1.23      case VMEXIT_EXCEPTION_DF:
    1.24 -        printk("Guest double fault");
    1.25 -        BUG();
    1.26 +        /* Debug info to hopefully help debug WHY the guest double-faulted. */
    1.27 +        svm_dump_vmcb(__func__, vmcb);
    1.28 +        svm_dump_regs(__func__, &regs);
    1.29 +        svm_dump_inst(svm_rip2pointer(vmcb));
    1.30 +        svm_inject_exception(v, TRAP_double_fault, 1, 0);
    1.31          break;
    1.32  
    1.33      case VMEXIT_INTR: