From: Al Viro Signed-off-by: Al Viro Signed-off-by: Andrew Morton --- arch/m68k/kernel/process.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff -puN arch/m68k/kernel/process.c~m68k-task_stack_page arch/m68k/kernel/process.c --- devel/arch/m68k/kernel/process.c~m68k-task_stack_page 2006-01-04 22:02:29.000000000 -0800 +++ devel-akpm/arch/m68k/kernel/process.c 2006-01-04 22:02:29.000000000 -0800 @@ -238,10 +238,9 @@ int copy_thread(int nr, unsigned long cl { struct pt_regs * childregs; struct switch_stack * childstack, *stack; - unsigned long stack_offset, *retp; + unsigned long *retp; - stack_offset = THREAD_SIZE - sizeof(struct pt_regs); - childregs = (struct pt_regs *) ((unsigned long) (p->thread_info) + stack_offset); + childregs = (struct pt_regs *) (task_stack_page(p) + THREAD_SIZE) - 1; *childregs = *regs; childregs->d0 = 0; @@ -386,7 +385,7 @@ unsigned long get_wchan(struct task_stru if (!p || p == current || p->state == TASK_RUNNING) return 0; - stack_page = (unsigned long)(p->thread_info); + stack_page = (unsigned long)task_stack_page(p); fp = ((struct switch_stack *)p->thread.ksp)->a6; do { if (fp < stack_page+sizeof(struct thread_info) || _