[PATCH] v850: task_stack_page(), task_pt_regs()
Al Viro [Thu, 12 Jan 2006 09:05:51 +0000 (01:05 -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/v850/kernel/process.c
arch/v850/kernel/ptrace.c
include/asm-v850/processor.h

index 062ffa0..eb90993 100644 (file)
@@ -114,7 +114,7 @@ int copy_thread (int nr, unsigned long clone_flags,
                 struct task_struct *p, struct pt_regs *regs)
 {
        /* Start pushing stuff from the top of the child's kernel stack.  */
-       unsigned long orig_ksp = (unsigned long)p->thread_info + THREAD_SIZE;
+       unsigned long orig_ksp = task_tos(p);
        unsigned long ksp = orig_ksp;
        /* We push two `state save' stack fames (see entry.S) on the new
           kernel stack:
index 18492d0..67e0575 100644 (file)
@@ -58,7 +58,7 @@ static v850_reg_t *reg_save_addr (unsigned reg_offs, struct task_struct *t)
                regs = thread_saved_regs (t);
        else
                /* Register saved during kernel entry (or not available).  */
-               regs = task_regs (t);
+               regs = task_pt_regs (t);
 
        return (v850_reg_t *)((char *)regs + reg_offs);
 }
index 98f9294..2d31308 100644 (file)
@@ -98,10 +98,10 @@ unsigned long get_wchan (struct task_struct *p);
 
 
 /* Return some info about the user process TASK.  */
-#define task_tos(task) ((unsigned long)(task)->thread_info + THREAD_SIZE)
-#define task_regs(task) ((struct pt_regs *)task_tos (task) - 1)
-#define task_sp(task)  (task_regs (task)->gpr[GPR_SP])
-#define task_pc(task)  (task_regs (task)->pc)
+#define task_tos(task) ((unsigned long)task_stack_page(task) + THREAD_SIZE)
+#define task_pt_regs(task) ((struct pt_regs *)task_tos (task) - 1)
+#define task_sp(task)  (task_pt_regs (task)->gpr[GPR_SP])
+#define task_pc(task)  (task_pt_regs (task)->pc)
 /* Grotty old names for some.  */
 #define KSTK_EIP(task) task_pc (task)
 #define KSTK_ESP(task) task_sp (task)