summaryrefslogtreecommitdiffstats
path: root/arch/sh64
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2006-01-12 10:06:01 +0100
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-12 18:08:57 +0100
commitee8c1dd44305cca9d0ded248de991f67b55ec622 (patch)
tree59d5e3b0cfa58390f793223eb8b3a779fc61c2d6 /arch/sh64
parent[PATCH] arm26: task_stack_page() (diff)
downloadlinux-ee8c1dd44305cca9d0ded248de991f67b55ec622.tar.xz
linux-ee8c1dd44305cca9d0ded248de991f67b55ec622.zip
[PATCH] sh64: task_stack_page()
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>
Diffstat (limited to 'arch/sh64')
-rw-r--r--arch/sh64/kernel/process.c4
-rw-r--r--arch/sh64/lib/dbg.c2
2 files changed, 3 insertions, 3 deletions
diff --git a/arch/sh64/kernel/process.c b/arch/sh64/kernel/process.c
index 419b5a710441..1da9c61d6823 100644
--- a/arch/sh64/kernel/process.c
+++ b/arch/sh64/kernel/process.c
@@ -744,7 +744,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
}
#endif
/* Copy from sh version */
- childregs = ((struct pt_regs *)(THREAD_SIZE + (unsigned long) p->thread_info )) - 1;
+ childregs = (struct pt_regs *)(THREAD_SIZE + task_stack_page(p)) - 1;
*childregs = *regs;
@@ -752,7 +752,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
childregs->regs[15] = usp;
p->thread.uregs = childregs;
} else {
- childregs->regs[15] = (unsigned long)p->thread_info + THREAD_SIZE;
+ childregs->regs[15] = (unsigned long)task_stack_page(p) + THREAD_SIZE;
}
childregs->regs[9] = 0; /* Set return value for child */
diff --git a/arch/sh64/lib/dbg.c b/arch/sh64/lib/dbg.c
index 526fedae6db8..58087331b8a6 100644
--- a/arch/sh64/lib/dbg.c
+++ b/arch/sh64/lib/dbg.c
@@ -174,7 +174,7 @@ void evt_debug(int evt, int ret_addr, int event, int tra, struct pt_regs *regs)
struct ring_node *rr;
pid = current->pid;
- stack_bottom = (unsigned long) current->thread_info;
+ stack_bottom = (unsigned long) task_stack_page(current);
asm volatile("ori r15, 0, %0" : "=r" (sp));
rr = event_ring + event_ptr;
rr->evt = evt;