- Fixed the disabling of interrupts on the stack before sysexit.
Modified: trunk/reactos/ntoskrnl/ke/i386/syscall.S

Modified: trunk/reactos/ntoskrnl/ke/i386/syscall.S
--- trunk/reactos/ntoskrnl/ke/i386/syscall.S	2005-01-18 17:00:47 UTC (rev 13124)
+++ trunk/reactos/ntoskrnl/ke/i386/syscall.S	2005-01-18 18:12:41 UTC (rev 13125)
@@ -10,13 +10,13 @@
  *                            and re-wrote most of handler code. - Alex Ionescu
  */
 
+#include <roscfg.h>
 #include <ddk/status.h>
 #include <internal/i386/segment.h>
 #include <internal/ps.h>
 #include <internal/i386/ke.h>
 #include <ntos/tss.h>
 #include <napi/shared_data.h>
-#include <roscfg.h>
 
 #define UserMode  (1)
 
@@ -40,7 +40,7 @@
     pushl $USER_DS
     pushl %edx                  /* Ring 3 SS:ESP */
     pushfl
-    orl $200, (%esp)            /* Re-enable IRQs in EFLAGS, to fake INT */
+    orl $X86_EFLAGS_IF, (%esp)  /* Re-enable IRQs in EFLAGS, to fake INT */
     pushl $USER_CS
     pushl $KUSER_SHARED_SYSCALL_RET
     
@@ -281,11 +281,11 @@
     mov %ecx, %fs
     
     /* We will be cleaning up the stack ourselves */
-    popl %edx                 /* New Ring 3 EIP */
-    add $0x4, %esp            /* Skip Ring 3 DS */
-    andl $0xFD, 9(%esp)       /* Remove IRQ hack from EFLAGS */
-    popfl                     /* Restore old EFLAGS */
-    popl %ecx                 /* Old Ring 3 SS:ESP */   
+    popl %edx                         /* New Ring 3 EIP */
+    add $0x4, %esp                    /* Skip Ring 3 DS */
+    andl $~X86_EFLAGS_IF, (%esp)      /* Remove IRQ hack from EFLAGS */
+    popfl                             /* Restore old EFLAGS */
+    popl %ecx                         /* Old Ring 3 SS:ESP */   
        
     /* 
      * At this point: