|
|
|
|
|
|
|
|
|
|
xen-changelog
[Xen-changelog] Fix event-upcall masking when creating a trap frame
# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 43f424818d6ef3d3c877774b03e39fe47c8c094a
# Parent d25da0ddd9d51cfd4f4f487a46706290546563f6
Fix event-upcall masking when creating a trap frame
on guest kernel stack. Previously an exception would
clear an already-set mask.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>
diff -r d25da0ddd9d5 -r 43f424818d6e xen/arch/x86/x86_32/entry.S
--- a/xen/arch/x86/x86_32/entry.S Thu Aug 4 13:13:02 2005
+++ b/xen/arch/x86/x86_32/entry.S Thu Aug 4 16:53:11 2005
@@ -335,7 +335,8 @@
movl VCPU_vcpu_info(%ebx),%eax
pushl VCPUINFO_upcall_mask(%eax)
testb $TBF_INTERRUPT,%cl
- setnz VCPUINFO_upcall_mask(%eax) # TBF_INTERRUPT -> clear upcall mask
+ setnz %al # TBF_INTERRUPT -> set upcall mask
+ orb %al,VCPUINFO_upcall_mask(%eax)
popl %eax
shll $16,%eax # Bits 16-23: saved_upcall_mask
movw UREGS_cs+4(%esp),%ax # Bits 0-15: CS
diff -r d25da0ddd9d5 -r 43f424818d6e xen/arch/x86/x86_64/entry.S
--- a/xen/arch/x86/x86_64/entry.S Thu Aug 4 13:13:02 2005
+++ b/xen/arch/x86/x86_64/entry.S Thu Aug 4 16:53:11 2005
@@ -314,7 +314,8 @@
movq VCPU_vcpu_info(%rbx),%rax
pushq VCPUINFO_upcall_mask(%rax)
testb $TBF_INTERRUPT,%cl
- setnz VCPUINFO_upcall_mask(%rax)# TBF_INTERRUPT -> clear upcall mask
+ setnz %al # TBF_INTERRUPT -> set upcall mask
+ orb %al,VCPUINFO_upcall_mask(%rax)
popq %rax
shlq $32,%rax # Bits 32-39: saved_upcall_mask
movw UREGS_cs+8(%rsp),%ax # Bits 0-15: CS
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|
<Prev in Thread] |
Current Thread |
[Next in Thread> |
- [Xen-changelog] Fix event-upcall masking when creating a trap frame,
Xen patchbot -unstable <=
|
|
|
|
|