diff options
| -rw-r--r-- | arch/sparc64/kernel/ptrace.c | 12 | ||||
| -rw-r--r-- | include/asm-sparc64/elf.h | 2 | ||||
| -rw-r--r-- | include/asm-sparc64/processor.h | 5 |
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 | ||
| 187 | extern unsigned long get_wchan(struct task_struct *task); | 187 | extern 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 | ||
