diff options
-rw-r--r-- | arch/sh/kernel/process.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/arch/sh/kernel/process.c b/arch/sh/kernel/process.c index 9d6a438b3eaf..e7607366ac4e 100644 --- a/arch/sh/kernel/process.c +++ b/arch/sh/kernel/process.c | |||
@@ -250,12 +250,11 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp, | |||
250 | childregs->regs[15] = usp; | 250 | childregs->regs[15] = usp; |
251 | ti->addr_limit = USER_DS; | 251 | ti->addr_limit = USER_DS; |
252 | } else { | 252 | } else { |
253 | childregs->regs[15] = (unsigned long)task_stack_page(p) + | 253 | childregs->regs[15] = (unsigned long)childregs; |
254 | THREAD_SIZE; | ||
255 | ti->addr_limit = KERNEL_DS; | 254 | ti->addr_limit = KERNEL_DS; |
256 | } | 255 | } |
257 | 256 | ||
258 | if (clone_flags & CLONE_SETTLS) | 257 | if (clone_flags & CLONE_SETTLS) |
259 | childregs->gbr = childregs->regs[0]; | 258 | childregs->gbr = childregs->regs[0]; |
260 | 259 | ||
261 | childregs->regs[0] = 0; /* Set return value for child */ | 260 | childregs->regs[0] = 0; /* Set return value for child */ |