From: kaf24@firebug.cl.cam.ac.uk Date: Tue, 27 Jun 2006 08:33:35 +0000 (+0100) Subject: [HVM][VMX] Propagate debug exception to guest if no external debugger is enabled. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~15913^2~35 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=d2ea22a405cfc28768527ed1c9e075f06a8b2003;p=xen.git [HVM][VMX] Propagate debug exception to guest if no external debugger is enabled. Signed-off-by: George Dunlap --- diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index c3019e9510..a8dca0dd2b 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -2080,10 +2080,19 @@ asmlinkage void vmx_vmexit_handler(struct cpu_user_regs regs) { void store_cpu_user_regs(struct cpu_user_regs *regs); - store_cpu_user_regs(®s); - __vm_clear_bit(GUEST_PENDING_DBG_EXCEPTIONS, PENDING_DEBUG_EXC_BS); - - domain_pause_for_debugger(); + if ( test_bit(_DOMF_debugging, &v->domain->domain_flags) ) + { + store_cpu_user_regs(®s); + domain_pause_for_debugger(); + __vm_clear_bit(GUEST_PENDING_DBG_EXCEPTIONS, + PENDING_DEBUG_EXC_BS); + } + else + { + vmx_reflect_exception(v); + __vm_clear_bit(GUEST_PENDING_DBG_EXCEPTIONS, + PENDING_DEBUG_EXC_BS); + } break; }