- 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: