OSDN Git Service

[PATCH] sh: task_stack_page()
authorAl Viro <viro@ftp.linux.org.uk>
Thu, 12 Jan 2006 09:05:45 +0000 (01:05 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 12 Jan 2006 17:08:53 +0000 (09:08 -0800)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/sh/kernel/process.c
include/asm-sh/ptrace.h

index 35415d0..aac15e4 100644 (file)
@@ -270,7 +270,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
        if (user_mode(regs)) {
                childregs->regs[15] = usp;
        } else {
-               childregs->regs[15] = (unsigned long)p->thread_info + THREAD_SIZE;
+               childregs->regs[15] = (unsigned long)task_stack_page(p) + THREAD_SIZE;
        }
         if (clone_flags & CLONE_SETTLS) {
                childregs->gbr = childregs->regs[0];
index 85aa0f4..792fc35 100644 (file)
@@ -93,11 +93,11 @@ extern void show_regs(struct pt_regs *);
 
 #ifdef CONFIG_SH_DSP
 #define task_pt_regs(task) \
-       ((struct pt_regs *) ((unsigned long)(task)->thread_info + THREAD_SIZE \
+       ((struct pt_regs *) (task_stack_page(task) + THREAD_SIZE \
                 - sizeof(struct pt_dspregs) - sizeof(unsigned long)) - 1)
 #else
 #define task_pt_regs(task) \
-       ((struct pt_regs *) ((unsigned long)(task)->thread_info + THREAD_SIZE \
+       ((struct pt_regs *) (task_stack_page(task) + THREAD_SIZE \
                 - sizeof(unsigned long)) - 1)
 #endif