Don't save and restore previous mode in trap handlers. This allows us to
call KeGetPreviousMode() from exception handlers and get the right
value.
Modified: trunk/reactos/ntoskrnl/ke/i386/trap.s
_____
Modified: trunk/reactos/ntoskrnl/ke/i386/trap.s
--- trunk/reactos/ntoskrnl/ke/i386/trap.s 2005-08-05 17:28:17 UTC
(rev 17073)
+++ trunk/reactos/ntoskrnl/ke/i386/trap.s 2005-08-05 18:26:43 UTC
(rev 17074)
@@ -45,13 +45,8 @@
popl %edx
popl %ecx
popl %eax
-
- /* Restore the old previous mode */
popl %ebx
- cmpl $0, %esi
- je .L7
- movb %bl, %ss:KTHREAD_PREVIOUS_MODE(%esi)
-.L7:
+
/* Restore the old exception handler list */
popl %ebx
movl %ebx, %fs:KPCR_EXCEPTION_LIST
@@ -140,13 +135,6 @@
/* Set the new previous mode based on the saved CS selector */
movl KTRAP_FRAME_CS(%ebp), %eax
andl $0x0000FFFF, %eax
- cmpl $KERNEL_CS, %eax
- jne .L1
- movb $KernelMode, KTHREAD_PREVIOUS_MODE(%edi)
- jmp .L3
-.L1:
- movb $UserMode, KTHREAD_PREVIOUS_MODE(%edi)
-.L3:
/* Save the old trap frame. */
movl KTHREAD_TRAP_FRAME(%edi), %edx