aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@ftp.linux.org.uk>2006-01-12 04:05:43 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-01-12 12:08:52 -0500
commit26ecbdea4bf46b0165db4aafd8e4981b4db53936 (patch)
tree16d743692c32f465a5c73b3f051bd87c87ba08ae
parentee3eea165e706a3ce8a53693e810403f65239ebb (diff)
[PATCH] sparc64: task_pt_regs()
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>
-rw-r--r--arch/sparc64/kernel/ptrace.c12
-rw-r--r--include/asm-sparc64/elf.h2
-rw-r--r--include/asm-sparc64/processor.h5
3 files changed, 10 insertions, 9 deletions
diff --git a/arch/sparc64/kernel/ptrace.c b/arch/sparc64/kernel/ptrace.c
index 3e4077c84a23..3f9746f856d2 100644
--- a/arch/sparc64/kernel/ptrace.c
+++ b/arch/sparc64/kernel/ptrace.c
@@ -296,7 +296,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
296 case PTRACE_GETREGS: { 296 case PTRACE_GETREGS: {
297 struct pt_regs32 __user *pregs = 297 struct pt_regs32 __user *pregs =
298 (struct pt_regs32 __user *) addr; 298 (struct pt_regs32 __user *) addr;
299 struct pt_regs *cregs = child->thread_info->kregs; 299 struct pt_regs *cregs = task_pt_regs(child);
300 int rval; 300 int rval;
301 301
302 if (__put_user(tstate_to_psr(cregs->tstate), (&pregs->psr)) || 302 if (__put_user(tstate_to_psr(cregs->tstate), (&pregs->psr)) ||
@@ -320,7 +320,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
320 320
321 case PTRACE_GETREGS64: { 321 case PTRACE_GETREGS64: {
322 struct pt_regs __user *pregs = (struct pt_regs __user *) addr; 322 struct pt_regs __user *pregs = (struct pt_regs __user *) addr;
323 struct pt_regs *cregs = child->thread_info->kregs; 323 struct pt_regs *cregs = task_pt_regs(child);
324 unsigned long tpc = cregs->tpc; 324 unsigned long tpc = cregs->tpc;
325 int rval; 325 int rval;
326 326
@@ -348,7 +348,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
348 case PTRACE_SETREGS: { 348 case PTRACE_SETREGS: {
349 struct pt_regs32 __user *pregs = 349 struct pt_regs32 __user *pregs =
350 (struct pt_regs32 __user *) addr; 350 (struct pt_regs32 __user *) addr;
351 struct pt_regs *cregs = child->thread_info->kregs; 351 struct pt_regs *cregs = task_pt_regs(child);
352 unsigned int psr, pc, npc, y; 352 unsigned int psr, pc, npc, y;
353 int i; 353 int i;
354 354
@@ -381,7 +381,7 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
381 381
382 case PTRACE_SETREGS64: { 382 case PTRACE_SETREGS64: {
383 struct pt_regs __user *pregs = (struct pt_regs __user *) addr; 383 struct pt_regs __user *pregs = (struct pt_regs __user *) addr;
384 struct pt_regs *cregs = child->thread_info->kregs; 384 struct pt_regs *cregs = task_pt_regs(child);
385 unsigned long tstate, tpc, tnpc, y; 385 unsigned long tstate, tpc, tnpc, y;
386 int i; 386 int i;
387 387
@@ -562,8 +562,8 @@ asmlinkage void do_ptrace(struct pt_regs *regs)
562#ifdef DEBUG_PTRACE 562#ifdef DEBUG_PTRACE
563 printk("CONT: %s [%d]: set exit_code = %x %lx %lx\n", child->comm, 563 printk("CONT: %s [%d]: set exit_code = %x %lx %lx\n", child->comm,
564 child->pid, child->exit_code, 564 child->pid, child->exit_code,
565 child->thread_info->kregs->tpc, 565 task_pt_regs(child)->tpc,
566 child->thread_info->kregs->tnpc); 566 task_pt_regs(child)->tnpc);
567 567
568#endif 568#endif
569 wake_up_process(child); 569 wake_up_process(child);
diff --git a/include/asm-sparc64/elf.h b/include/asm-sparc64/elf.h
index 91458118277e..69539a8ab833 100644
--- a/include/asm-sparc64/elf.h
+++ b/include/asm-sparc64/elf.h
@@ -119,7 +119,7 @@ typedef struct {
119#endif 119#endif
120 120
121#define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \ 121#define ELF_CORE_COPY_TASK_REGS(__tsk, __elf_regs) \
122 ({ ELF_CORE_COPY_REGS((*(__elf_regs)), (__tsk)->thread_info->kregs); 1; }) 122 ({ ELF_CORE_COPY_REGS((*(__elf_regs)), task_pt_regs(__tsk)); 1; })
123 123
124/* 124/*
125 * This is used to ensure we don't load something for the wrong architecture. 125 * This is used to ensure we don't load something for the wrong architecture.
diff --git a/include/asm-sparc64/processor.h b/include/asm-sparc64/processor.h
index 3169f3e2237e..cd8d9b4c8658 100644
--- a/include/asm-sparc64/processor.h
+++ b/include/asm-sparc64/processor.h
@@ -186,8 +186,9 @@ extern pid_t kernel_thread(int (*fn)(void *), void * arg, unsigned long flags);
186 186
187extern unsigned long get_wchan(struct task_struct *task); 187extern unsigned long get_wchan(struct task_struct *task);
188 188
189#define KSTK_EIP(tsk) ((tsk)->thread_info->kregs->tpc) 189#define task_pt_regs(tsk) (task_thread_info(tsk)->kregs)
190#define KSTK_ESP(tsk) ((tsk)->thread_info->kregs->u_regs[UREG_FP]) 190#define KSTK_EIP(tsk) (task_pt_regs(tsk)->tpc)
191#define KSTK_ESP(tsk) (task_pt_regs(tsk)->u_regs[UREG_FP])
191 192
192#define cpu_relax() barrier() 193#define cpu_relax() barrier()
193 194