[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.