From 36a2a6bd4e46bfbf6384b1ad6831b519676e66ad Mon Sep 17 00:00:00 2001 From: Al Viro Date: Thu, 12 Jan 2006 01:05:50 -0800 Subject: [PATCH] --- yaml --- r: 18075 b: refs/heads/master c: 04fe6faf10c310480151667e7fe3e06df4208a8e h: refs/heads/master i: 18073: 8f4cfb1e28914be95dad8519773d583e37a952a9 18071: b5c5b708476c6ed56e074b43ec6bf61b5db8d5a5 v: v3 --- [refs] | 2 +- trunk/arch/xtensa/kernel/process.c | 4 ++-- trunk/arch/xtensa/kernel/ptrace.c | 12 ++++++------ trunk/include/asm-xtensa/processor.h | 6 +++--- trunk/include/asm-xtensa/ptrace.h | 4 ++-- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/[refs] b/[refs] index a0dcdd99b4d8..b9553a648b3e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 30af7120fe6cfa8cf9ccd0626474fa1cd6d2bd59 +refs/heads/master: 04fe6faf10c310480151667e7fe3e06df4208a8e diff --git a/trunk/arch/xtensa/kernel/process.c b/trunk/arch/xtensa/kernel/process.c index 6a44b54ae817..f1f596644bfc 100644 --- a/trunk/arch/xtensa/kernel/process.c +++ b/trunk/arch/xtensa/kernel/process.c @@ -145,7 +145,7 @@ int copy_thread(int nr, unsigned long clone_flags, unsigned long usp, int user_mode = user_mode(regs); /* Set up new TSS. */ - tos = (unsigned long)p->thread_info + THREAD_SIZE; + tos = (unsigned long)task_stack_page(p) + THREAD_SIZE; if (user_mode) childregs = (struct pt_regs*)(tos - PT_USER_SIZE); else @@ -217,7 +217,7 @@ int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags) unsigned long get_wchan(struct task_struct *p) { unsigned long sp, pc; - unsigned long stack_page = (unsigned long) p->thread_info; + unsigned long stack_page = (unsigned long) task_stack_page(p); int count = 0; if (!p || p == current || p->state == TASK_RUNNING) diff --git a/trunk/arch/xtensa/kernel/ptrace.c b/trunk/arch/xtensa/kernel/ptrace.c index ab5c4c65b5c4..4cc85285a70a 100644 --- a/trunk/arch/xtensa/kernel/ptrace.c +++ b/trunk/arch/xtensa/kernel/ptrace.c @@ -72,7 +72,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) struct pt_regs *regs; unsigned long tmp; - regs = xtensa_pt_regs(child); + regs = task_pt_regs(child); tmp = 0; /* Default return value. */ switch(addr) { @@ -149,7 +149,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) case PTRACE_POKEUSR: { struct pt_regs *regs; - regs = xtensa_pt_regs(child); + regs = task_pt_regs(child); switch (addr) { case REG_AR_BASE ... REG_AR_BASE + XCHAL_NUM_AREGS - 1: @@ -240,7 +240,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) * elf_gregset_t format. */ xtensa_gregset_t format; - struct pt_regs *regs = xtensa_pt_regs(child); + struct pt_regs *regs = task_pt_regs(child); do_copy_regs (&format, regs, child); @@ -257,7 +257,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) * values in the elf_gregset_t format. */ xtensa_gregset_t format; - struct pt_regs *regs = xtensa_pt_regs(child); + struct pt_regs *regs = task_pt_regs(child); if (copy_from_user(&format,(void *)data,sizeof(elf_gregset_t))){ ret = -EFAULT; @@ -281,7 +281,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) * elf_fpregset_t format. */ elf_fpregset_t fpregs; - struct pt_regs *regs = xtensa_pt_regs(child); + struct pt_regs *regs = task_pt_regs(child); do_save_fpregs (&fpregs, regs, child); @@ -299,7 +299,7 @@ long arch_ptrace(struct task_struct *child, long request, long addr, long data) * values in the elf_fpregset_t format. */ elf_fpregset_t fpregs; - struct pt_regs *regs = xtensa_pt_regs(child); + struct pt_regs *regs = task_pt_regs(child); ret = 0; if (copy_from_user(&fpregs, (void *)data, sizeof(elf_fpregset_t))) { diff --git a/trunk/include/asm-xtensa/processor.h b/trunk/include/asm-xtensa/processor.h index 9cab5e4298b9..d1d72ad36f08 100644 --- a/trunk/include/asm-xtensa/processor.h +++ b/trunk/include/asm-xtensa/processor.h @@ -184,12 +184,12 @@ extern int kernel_thread(int (*fn)(void *), void * arg, unsigned long flags); #define release_segments(mm) do { } while(0) #define forget_segments() do { } while (0) -#define thread_saved_pc(tsk) (xtensa_pt_regs(tsk)->pc) +#define thread_saved_pc(tsk) (task_pt_regs(tsk)->pc) extern unsigned long get_wchan(struct task_struct *p); -#define KSTK_EIP(tsk) (xtensa_pt_regs(tsk)->pc) -#define KSTK_ESP(tsk) (xtensa_pt_regs(tsk)->areg[1]) +#define KSTK_EIP(tsk) (task_pt_regs(tsk)->pc) +#define KSTK_ESP(tsk) (task_pt_regs(tsk)->areg[1]) #define cpu_relax() do { } while (0) diff --git a/trunk/include/asm-xtensa/ptrace.h b/trunk/include/asm-xtensa/ptrace.h index aa4fd7fb3ce7..a5ac71a5205c 100644 --- a/trunk/include/asm-xtensa/ptrace.h +++ b/trunk/include/asm-xtensa/ptrace.h @@ -113,8 +113,8 @@ struct pt_regs { }; #ifdef __KERNEL__ -# define xtensa_pt_regs(tsk) ((struct pt_regs*) \ - (((long)(tsk)->thread_info + KERNEL_STACK_SIZE - (XCHAL_NUM_AREGS-16)*4)) - 1) +# define task_pt_regs(tsk) ((struct pt_regs*) \ + (task_stack_page(tsk) + KERNEL_STACK_SIZE - (XCHAL_NUM_AREGS-16)*4) - 1) # define user_mode(regs) (((regs)->ps & 0x00000020)!=0) # define instruction_pointer(regs) ((regs)->pc) extern void show_regs(struct pt_regs *);