diff options
author | Keir Fraser <keir@xensource.com> | 2007-10-29 09:49:39 +0000 |
---|---|---|
committer | Keir Fraser <keir@xensource.com> | 2007-10-29 09:49:39 +0000 |
commit | 70ee40b004c7a05092c1085772201754941a8543 (patch) | |
tree | 364dc348082e11073f8825d4545ab29375101250 /xen/arch/x86/x86_64/entry.S | |
parent | 8ee4d89b7260fe7a4a5ba334146707715b4dca3c (diff) | |
download | xen-70ee40b004c7a05092c1085772201754941a8543.tar.gz xen-70ee40b004c7a05092c1085772201754941a8543.tar.bz2 xen-70ee40b004c7a05092c1085772201754941a8543.zip |
x86: Clean up NMI delivery logic. Allow set_trap_table vector 2 to be
specified as not disabling event delivery, just like any other vector.
Signed-off-by: Keir Fraser <keir@xensource.com>
Diffstat (limited to 'xen/arch/x86/x86_64/entry.S')
-rw-r--r-- | xen/arch/x86/x86_64/entry.S | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/xen/arch/x86/x86_64/entry.S b/xen/arch/x86/x86_64/entry.S index 34c9c2a923..d4b112bc2f 100644 --- a/xen/arch/x86/x86_64/entry.S +++ b/xen/arch/x86/x86_64/entry.S @@ -235,15 +235,13 @@ process_softirqs: process_nmi: testb $1,VCPU_nmi_masked(%rbx) jnz test_guest_events + sti movb $0,VCPU_nmi_pending(%rbx) - movq VCPU_nmi_addr(%rbx),%rax - test %rax,%rax - jz test_guest_events + call set_guest_nmi_trapbounce + test %eax,%eax + jz test_all_events movb $1,VCPU_nmi_masked(%rbx) - sti leaq VCPU_trap_bounce(%rbx),%rdx - movq %rax,TRAPBOUNCE_eip(%rdx) - movb $TBF_INTERRUPT,TRAPBOUNCE_flags(%rdx) call create_bounce_frame jmp test_all_events |