[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>

authored by Al Viro and committed by Linus Torvalds 26ecbdea ee3eea16

+10 -9
+6 -6
arch/sparc64/kernel/ptrace.c
··· 296 296 case PTRACE_GETREGS: { 297 297 struct pt_regs32 __user *pregs = 298 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 300 int rval; 301 301 302 302 if (__put_user(tstate_to_psr(cregs->tstate), (&pregs->psr)) || ··· 320 320 321 321 case PTRACE_GETREGS64: { 322 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 324 unsigned long tpc = cregs->tpc; 325 325 int rval; 326 326 ··· 348 348 case PTRACE_SETREGS: { 349 349 struct pt_regs32 __user *pregs = 350 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 352 unsigned int psr, pc, npc, y; 353 353 int i; 354 354 ··· 381 381 382 382 case PTRACE_SETREGS64: { 383 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 385 unsigned long tstate, tpc, tnpc, y; 386 386 int i; 387 387 ··· 562 562 #ifdef DEBUG_PTRACE 563 563 printk("CONT: %s [%d]: set exit_code = %x %lx %lx\n", child->comm, 564 564 child->pid, child->exit_code, 565 - child->thread_info->kregs->tpc, 566 - child->thread_info->kregs->tnpc); 565 + task_pt_regs(child)->tpc, 566 + task_pt_regs(child)->tnpc); 567 567 568 568 #endif 569 569 wake_up_process(child);
+1 -1
include/asm-sparc64/elf.h
··· 119 119 #endif 120 120 121 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 125 * This is used to ensure we don't load something for the wrong architecture.
+3 -2
include/asm-sparc64/processor.h
··· 186 186 187 187 extern unsigned long get_wchan(struct task_struct *task); 188 188 189 - #define KSTK_EIP(tsk) ((tsk)->thread_info->kregs->tpc) 190 - #define KSTK_ESP(tsk) ((tsk)->thread_info->kregs->u_regs[UREG_FP]) 189 + #define task_pt_regs(tsk) (task_thread_info(tsk)->kregs) 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 193 #define cpu_relax() barrier() 193 194