[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen master] x86/vmx: clean up TRAP_int3 handling
commit b7d4cffbf2b17ec8a5c233f84395f4f85ad1a91d Author: Tamas K Lengyel <tamas@xxxxxxxxxxxxx> AuthorDate: Mon Jul 4 12:11:03 2016 +0200 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Mon Jul 4 12:11:03 2016 +0200 x86/vmx: clean up TRAP_int3 handling Clean up the handling of TRAP_int3 VMEXITs to conform to the handling of TRAP_debug. Signed-off-by: Tamas K Lengyel <tamas@xxxxxxxxxxxxx> Acked-by: Kevin Tian <kevin.tian@xxxxxxxxx> --- xen/arch/x86/hvm/vmx/vmx.c | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index 547233a..df19579 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -3402,17 +3402,10 @@ void vmx_vmexit_handler(struct cpu_user_regs *regs) else domain_pause_for_debugger(); break; - case TRAP_int3: - { + case TRAP_int3: HVMTRACE_1D(TRAP, vector); - if ( v->domain->debugger_attached ) + if ( !v->domain->debugger_attached ) { - update_guest_eip(); /* Safe: INT3 */ - v->arch.gdbsx_vcpu_event = TRAP_int3; - domain_pause_for_debugger(); - break; - } - else { unsigned long insn_len; int rc; @@ -3422,23 +3415,18 @@ void vmx_vmexit_handler(struct cpu_user_regs *regs) X86_EVENTTYPE_SW_EXCEPTION, insn_len); + if ( rc < 0 ) + goto exit_and_crash; if ( !rc ) - { - struct hvm_trap trap = { - .vector = TRAP_int3, - .type = X86_EVENTTYPE_SW_EXCEPTION, - .error_code = HVM_DELIVER_NO_ERROR_CODE, - .insn_len = insn_len - }; - hvm_inject_trap(&trap); - break; - } - if ( rc > 0 ) - break; + vmx_propagate_intr(intr_info); } - - goto exit_and_crash; - } + else + { + update_guest_eip(); /* Safe: INT3 */ + v->arch.gdbsx_vcpu_event = TRAP_int3; + domain_pause_for_debugger(); + } + break; case TRAP_no_device: HVMTRACE_1D(TRAP, vector); vmx_fpu_dirty_intercept(); -- generated by git-patchbot for /home/xen/git/xen.git#master _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxx https://lists.xenproject.org/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |