linux 2.6.16.38 w/ vs2.0.3-rc1
[linux-2.6.git] / arch / i386 / kernel / entry.S
index 840d990..a14218c 100644 (file)
@@ -128,6 +128,8 @@ ENTRY(ret_from_fork)
        call schedule_tail
        GET_THREAD_INFO(%ebp)
        popl %eax
+       pushl $0x0202                   # Reset kernel eflags
+       popfl
        jmp syscall_exit
 
 /*
@@ -184,12 +186,8 @@ sysenter_past_esp:
        pushl %ebp
        pushfl
        pushl $(__USER_CS)
-       /*
-        * Push current_thread_info()->sysenter_return to the stack.
-        * A tiny bit of offset fixup is necessary - 4*4 means the 4 words
-        * pushed above; +8 corresponds to copy_thread's esp0 setting.
-        */
-       pushl (TI_sysenter_return-THREAD_SIZE+8+4*4)(%esp)
+       pushl $SYSENTER_RETURN
+
 /*
  * Load the potential sixth argument from user stack.
  * Careful about security.
@@ -230,10 +228,6 @@ ENTRY(system_call)
        pushl %eax                      # save orig_eax
        SAVE_ALL
        GET_THREAD_INFO(%ebp)
-       testl $TF_MASK,EFLAGS(%esp)
-       jz no_singlestep
-       orl $_TIF_SINGLESTEP,TI_flags(%ebp)
-no_singlestep:
                                        # system call tracing in operation / emulation
        /* Note, _TIF_SECCOMP is bit number 8, and so it needs testw and not testb */
        testw $(_TIF_SYSCALL_EMU|_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT),TI_flags(%ebp)