|
@@ -616,11 +616,11 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long sp,
|
|
|
unsigned long unused,
|
|
|
struct task_struct *p, struct pt_regs *regs)
|
|
|
{
|
|
|
- struct thread_info *t = p->thread_info;
|
|
|
+ struct thread_info *t = task_thread_info(p);
|
|
|
char *child_trap_frame;
|
|
|
|
|
|
/* Calculate offset to stack_frame & pt_regs */
|
|
|
- child_trap_frame = ((char *)t) + (THREAD_SIZE - (TRACEREG_SZ+STACKFRAME_SZ));
|
|
|
+ child_trap_frame = task_stack_page(p) + (THREAD_SIZE - (TRACEREG_SZ+STACKFRAME_SZ));
|
|
|
memcpy(child_trap_frame, (((struct sparc_stackf *)regs)-1), (TRACEREG_SZ+STACKFRAME_SZ));
|
|
|
|
|
|
t->flags = (t->flags & ~((0xffUL << TI_FLAG_CWP_SHIFT) | (0xffUL << TI_FLAG_CURRENT_DS_SHIFT))) |
|
|
@@ -845,7 +845,7 @@ unsigned long get_wchan(struct task_struct *task)
|
|
|
task->state == TASK_RUNNING)
|
|
|
goto out;
|
|
|
|
|
|
- thread_info_base = (unsigned long) task->thread_info;
|
|
|
+ thread_info_base = (unsigned long) task_stack_page(task);
|
|
|
bias = STACK_BIAS;
|
|
|
fp = task_thread_info(task)->ksp + bias;
|
|
|
|