提交 ee8c1dd4 编写于 作者: A Al Viro 提交者: Linus Torvalds

[PATCH] sh64: task_stack_page()

Signed-off-by: NAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 7fdf0d7a
...@@ -744,7 +744,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp, ...@@ -744,7 +744,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
} }
#endif #endif
/* Copy from sh version */ /* 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; *childregs = *regs;
...@@ -752,7 +752,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp, ...@@ -752,7 +752,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
childregs->regs[15] = usp; childregs->regs[15] = usp;
p->thread.uregs = childregs; p->thread.uregs = childregs;
} else { } 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 */ childregs->regs[9] = 0; /* Set return value for child */
......
...@@ -174,7 +174,7 @@ void evt_debug(int evt, int ret_addr, int event, int tra, struct pt_regs *regs) ...@@ -174,7 +174,7 @@ void evt_debug(int evt, int ret_addr, int event, int tra, struct pt_regs *regs)
struct ring_node *rr; struct ring_node *rr;
pid = current->pid; 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)); asm volatile("ori r15, 0, %0" : "=r" (sp));
rr = event_ring + event_ptr; rr = event_ring + event_ptr;
rr->evt = evt; rr->evt = evt;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册