Commit 26ecbdea authored by Al Viro's avatar Al Viro Committed by Linus Torvalds

[PATCH] sparc64: task_pt_regs()

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent ee3eea16
...@@ -296,7 +296,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs) ...@@ -296,7 +296,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
case PTRACE_GETREGS: { case PTRACE_GETREGS: {
struct pt_regs32 __user *pregs = struct pt_regs32 __user *pregs =
(struct pt_regs32 __user *) addr; (struct pt_regs32 __user *) addr;
struct pt_regs *cregs = child->thread_info->kregs; struct pt_regs *cregs = task_pt_regs(child);
int rval; int rval;
if (__put_user(tstate_to_psr(cregs->tstate), (&pregs->psr)) || if (__put_user(tstate_to_psr(cregs->tstate), (&pregs->psr)) ||
...@@ -320,7 +320,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs) ...@@ -320,7 +320,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
case PTRACE_GETREGS64: { case PTRACE_GETREGS64: {
struct pt_regs __user *pregs = (struct pt_regs __user *) addr; struct pt_regs __user *pregs = (struct pt_regs __user *) addr;
struct pt_regs *cregs = child->thread_info->kregs; struct pt_regs *cregs = task_pt_regs(child);
unsigned long tpc = cregs->tpc; unsigned long tpc = cregs->tpc;
int rval; int rval;
...@@ -348,7 +348,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs) ...@@ -348,7 +348,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
case PTRACE_SETREGS: { case PTRACE_SETREGS: {
struct pt_regs32 __user *pregs = struct pt_regs32 __user *pregs =
(struct pt_regs32 __user *) addr; (struct pt_regs32 __user *) addr;
struct pt_regs *cregs = child->thread_info->kregs; struct pt_regs *cregs = task_pt_regs(child);
unsigned int psr, pc, npc, y; unsigned int psr, pc, npc, y;
int i; int i;
...@@ -381,7 +381,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs) ...@@ -381,7 +381,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
case PTRACE_SETREGS64: { case PTRACE_SETREGS64: {
struct pt_regs __user *pregs = (struct pt_regs __user *) addr; struct pt_regs __user *pregs = (struct pt_regs __user *) addr;
struct pt_regs *cregs = child->thread_info->kregs; struct pt_regs *cregs = task_pt_regs(child);
unsigned long tstate, tpc, tnpc, y; unsigned long tstate, tpc, tnpc, y;
int i; int i;
...@@ -562,8 +562,8 @@ asmlinkage void do_ptrace(struct pt_regs *regs) ...@@ -562,8 +562,8 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
#ifdef DEBUG_PTRACE #ifdef DEBUG_PTRACE
printk("CONT: %s [%d]: set exit_code = %x %lx %lx\n", child->comm, printk("CONT: %s [%d]: set exit_code = %x %lx %lx\n", child->comm,
child->pid, child->exit_code, child->pid, child->exit_code,
child->thread_info->kregs->tpc, task_pt_regs(child)->tpc,
child->thread_info->kregs->tnpc); task_pt_regs(child)->tnpc);
#endif #endif
wake_up_process(child); wake_up_process(child);
......
...@@ -119,7 +119,7 @@ typedef struct { ...@@ -119,7 +119,7 @@ typedef struct {
#endif #endif
#define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \ #define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \
({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread_info->kregs); 1; }) ({ ELF_CORE_COPY_REGS((*(__elf_regs)), task_pt_regs(__tsk)); 1; })
/* /*
* This is used to ensure we don't load something for the wrong architecture. * This is used to ensure we don't load something for the wrong architecture.
......
...@@ -186,8 +186,9 @@ extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); ...@@ -186,8 +186,9 @@ extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
extern unsigned long get_wchan(struct task_struct *task); extern unsigned long get_wchan(struct task_struct *task);
#define KSTK_EIP(tsk) ((tsk)->thread_info->kregs->tpc) #define task_pt_regs(tsk) (task_thread_info(tsk)->kregs)
#define KSTK_ESP(tsk) ((tsk)->thread_info->kregs->u_regs[UREG_FP]) #define KSTK_EIP(tsk) (task_pt_regs(tsk)->tpc)
#define KSTK_ESP(tsk) (task_pt_regs(tsk)->u_regs[UREG_FP])
#define cpu_relax() barrier() #define cpu_relax() barrier()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment