[PATCH] sparc64: task_thread_info()
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>
This commit is contained in:
@@ -324,7 +324,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||
unsigned long tpc = cregs->tpc;
|
||||
int rval;
|
||||
|
||||
if ((child->thread_info->flags & _TIF_32BIT) != 0)
|
||||
if ((task_thread_info(child)->flags & _TIF_32BIT) != 0)
|
||||
tpc &= 0xffffffff;
|
||||
if (__put_user(cregs->tstate, (&pregs->tstate)) ||
|
||||
__put_user(tpc, (&pregs->tpc)) ||
|
||||
@@ -395,7 +395,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||
pt_error_return(regs, EFAULT);
|
||||
goto out_tsk;
|
||||
}
|
||||
if ((child->thread_info->flags & _TIF_32BIT) != 0) {
|
||||
if ((task_thread_info(child)->flags & _TIF_32BIT) != 0) {
|
||||
tpc &= 0xffffffff;
|
||||
tnpc &= 0xffffffff;
|
||||
}
|
||||
@@ -430,11 +430,11 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||
} fpq[16];
|
||||
};
|
||||
struct fps __user *fps = (struct fps __user *) addr;
|
||||
unsigned long *fpregs = child->thread_info->fpregs;
|
||||
unsigned long *fpregs = task_thread_info(child)->fpregs;
|
||||
|
||||
if (copy_to_user(&fps->regs[0], fpregs,
|
||||
(32 * sizeof(unsigned int))) ||
|
||||
__put_user(child->thread_info->xfsr[0], (&fps->fsr)) ||
|
||||
__put_user(task_thread_info(child)->xfsr[0], (&fps->fsr)) ||
|
||||
__put_user(0, (&fps->fpqd)) ||
|
||||
__put_user(0, (&fps->flags)) ||
|
||||
__put_user(0, (&fps->extra)) ||
|
||||
@@ -452,11 +452,11 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||
unsigned long fsr;
|
||||
};
|
||||
struct fps __user *fps = (struct fps __user *) addr;
|
||||
unsigned long *fpregs = child->thread_info->fpregs;
|
||||
unsigned long *fpregs = task_thread_info(child)->fpregs;
|
||||
|
||||
if (copy_to_user(&fps->regs[0], fpregs,
|
||||
(64 * sizeof(unsigned int))) ||
|
||||
__put_user(child->thread_info->xfsr[0], (&fps->fsr))) {
|
||||
__put_user(task_thread_info(child)->xfsr[0], (&fps->fsr))) {
|
||||
pt_error_return(regs, EFAULT);
|
||||
goto out_tsk;
|
||||
}
|
||||
@@ -477,7 +477,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||
} fpq[16];
|
||||
};
|
||||
struct fps __user *fps = (struct fps __user *) addr;
|
||||
unsigned long *fpregs = child->thread_info->fpregs;
|
||||
unsigned long *fpregs = task_thread_info(child)->fpregs;
|
||||
unsigned fsr;
|
||||
|
||||
if (copy_from_user(fpregs, &fps->regs[0],
|
||||
@@ -486,11 +486,11 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||
pt_error_return(regs, EFAULT);
|
||||
goto out_tsk;
|
||||
}
|
||||
child->thread_info->xfsr[0] &= 0xffffffff00000000UL;
|
||||
child->thread_info->xfsr[0] |= fsr;
|
||||
if (!(child->thread_info->fpsaved[0] & FPRS_FEF))
|
||||
child->thread_info->gsr[0] = 0;
|
||||
child->thread_info->fpsaved[0] |= (FPRS_FEF | FPRS_DL);
|
||||
task_thread_info(child)->xfsr[0] &= 0xffffffff00000000UL;
|
||||
task_thread_info(child)->xfsr[0] |= fsr;
|
||||
if (!(task_thread_info(child)->fpsaved[0] & FPRS_FEF))
|
||||
task_thread_info(child)->gsr[0] = 0;
|
||||
task_thread_info(child)->fpsaved[0] |= (FPRS_FEF | FPRS_DL);
|
||||
pt_succ_return(regs, 0);
|
||||
goto out_tsk;
|
||||
}
|
||||
@@ -501,17 +501,17 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
|
||||
unsigned long fsr;
|
||||
};
|
||||
struct fps __user *fps = (struct fps __user *) addr;
|
||||
unsigned long *fpregs = child->thread_info->fpregs;
|
||||
unsigned long *fpregs = task_thread_info(child)->fpregs;
|
||||
|
||||
if (copy_from_user(fpregs, &fps->regs[0],
|
||||
(64 * sizeof(unsigned int))) ||
|
||||
__get_user(child->thread_info->xfsr[0], (&fps->fsr))) {
|
||||
__get_user(task_thread_info(child)->xfsr[0], (&fps->fsr))) {
|
||||
pt_error_return(regs, EFAULT);
|
||||
goto out_tsk;
|
||||
}
|
||||
if (!(child->thread_info->fpsaved[0] & FPRS_FEF))
|
||||
child->thread_info->gsr[0] = 0;
|
||||
child->thread_info->fpsaved[0] |= (FPRS_FEF | FPRS_DL | FPRS_DU);
|
||||
if (!(task_thread_info(child)->fpsaved[0] & FPRS_FEF))
|
||||
task_thread_info(child)->gsr[0] = 0;
|
||||
task_thread_info(child)->fpsaved[0] |= (FPRS_FEF | FPRS_DL | FPRS_DU);
|
||||
pt_succ_return(regs, 0);
|
||||
goto out_tsk;
|
||||
}
|
||||
|
Reference in New Issue
Block a user