[PATCH] x86: Revert new unwind kernel stack termination
authorAndi Kleen <ak@suse.de>
Sat, 21 Oct 2006 16:37:02 +0000 (18:37 +0200)
committerAndi Kleen <andi@basil.nowhere.org>
Sat, 21 Oct 2006 16:37:02 +0000 (18:37 +0200)
Jan convinced me that it was unnecessary because the assembly stubs do
this already on the stack.

Cc: jbeulich@novell.com
Signed-off-by: Andi Kleen <ak@suse.de>
arch/i386/kernel/process.c
arch/x86_64/kernel/entry.S

index 57d375900afb0643cf64f10b52ed49462131d001..1e1fa3e391a3889ec822c869c19bd9feb76e5e36 100644 (file)
@@ -336,7 +336,6 @@ extern void kernel_thread_helper(void);
 int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
 {
        struct pt_regs regs;
-       int err;
 
        memset(&regs, 0, sizeof(regs));
 
@@ -351,10 +350,7 @@ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags)
        regs.eflags = X86_EFLAGS_IF | X86_EFLAGS_SF | X86_EFLAGS_PF | 0x2;
 
        /* Ok, create the new process.. */
-       err = do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, &regs, 0, NULL, NULL);
-       if (err == 0) /* terminate kernel stack */
-               task_pt_regs(current)->eip = 0;
-       return err;
+       return do_fork(flags | CLONE_VM | CLONE_UNTRACED, 0, &regs, 0, NULL, NULL);
 }
 EXPORT_SYMBOL(kernel_thread);
 
index e3eddde3d3bb27a22ab63b1b3e498e014548d646..7d401b00d8227dbd6182524259a402822a903db6 100644 (file)
@@ -980,11 +980,6 @@ ENTRY(kernel_thread)
        call do_fork
        movq %rax,RAX(%rsp)
        xorl %edi,%edi
-       test %rax,%rax
-       jnz  1f
-       /* terminate stack in child */
-       movq %rdi,RIP(%rsp)
-1:
 
        /*
         * It isn't worth to check for reschedule here,