arch/ppc64/kernel/process.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) diff -puN arch/ppc64/kernel/process.c~ppc64-show_stack arch/ppc64/kernel/process.c --- 25-power4/arch/ppc64/kernel/process.c~ppc64-show_stack 2003-06-07 13:42:58.000000000 -0700 +++ 25-power4-akpm/arch/ppc64/kernel/process.c 2003-06-07 13:51:09.000000000 -0700 @@ -128,7 +128,6 @@ struct task_struct *__switch_to(struct t return last; } -static void show_tsk_stack(struct task_struct *p, unsigned long sp); char *ppc_find_proc_name(unsigned *p, char *buf, unsigned buflen); void show_regs(struct pt_regs * regs) @@ -171,7 +170,7 @@ void show_regs(struct pt_regs * regs) printk("NIP [%016lx] ", regs->nip); printk("%s\n", ppc_find_proc_name((unsigned *)regs->nip, name_buf, 256)); - show_tsk_stack(current, regs->gpr[1]); + show_stack(current, (unsigned long *)regs->gpr[1]); } void exit_thread(void) @@ -516,19 +515,20 @@ unsigned long get_wchan(struct task_stru return 0; } -static void show_tsk_stack(struct task_struct *p, unsigned long sp) +void show_stack(struct task_struct *p, unsigned long *sp) { unsigned long ip; - unsigned long stack_page = (unsigned long)p->thread_info; + unsigned long *stack_page; int count = 0; char name_buf[256]; if (!p) return; + stack_page = (unsigned long *)p->thread_info; printk("Call Trace:\n"); do { - if (__get_user(sp, (unsigned long *)sp)) + if (__get_user(sp, (unsigned long **)sp)) break; if (sp < (stack_page + sizeof(struct thread_struct)) || sp >= (stack_page + THREAD_SIZE)) @@ -543,10 +543,10 @@ static void show_tsk_stack(struct task_s void dump_stack(void) { - show_tsk_stack(current, (unsigned long)_get_SP()); + show_stack(current, (unsigned long *)_get_SP()); } void show_trace_task(struct task_struct *tsk) { - show_tsk_stack(tsk, tsk->thread.ksp); + show_stack(tsk, (unsigned long *)tsk->thread.ksp); } _