Loading arch/parisc/kernel/traps.c +21 −4 Original line number Diff line number Diff line Loading @@ -51,6 +51,9 @@ DEFINE_SPINLOCK(pa_dbit_lock); #endif void parisc_show_stack(struct task_struct *t, unsigned long *sp, struct pt_regs *regs); static int printbinary(char *buf, unsigned long x, int nbits) { unsigned long mask = 1UL << (nbits - 1); Loading Loading @@ -149,7 +152,7 @@ void show_regs(struct pt_regs *regs) printk(level); print_symbol(" RP(r2): %s\n", regs->gr[2]); dump_stack(); parisc_show_stack(current, NULL, regs); } Loading Loading @@ -183,11 +186,19 @@ static void do_show_stack(struct unwind_frame_info *info) printk("\n"); } void show_stack(struct task_struct *task, unsigned long *s) void parisc_show_stack(struct task_struct *task, unsigned long *sp, struct pt_regs *regs) { struct unwind_frame_info info; struct task_struct *t; t = task ? task : current; if (regs) { unwind_frame_init(&info, t, regs); goto show_stack; } if (!task) { if (t == current) { unsigned long sp; HERE: Loading @@ -203,12 +214,18 @@ void show_stack(struct task_struct *task, unsigned long *s) unwind_frame_init(&info, current, &r); } } else { unwind_frame_init_from_blocked_task(&info, task); unwind_frame_init_from_blocked_task(&info, t); } show_stack: do_show_stack(&info); } void show_stack(struct task_struct *t, unsigned long *sp) { return parisc_show_stack(t, sp, NULL); } int is_valid_bugaddr(unsigned long iaoq) { return 1; Loading Loading
arch/parisc/kernel/traps.c +21 −4 Original line number Diff line number Diff line Loading @@ -51,6 +51,9 @@ DEFINE_SPINLOCK(pa_dbit_lock); #endif void parisc_show_stack(struct task_struct *t, unsigned long *sp, struct pt_regs *regs); static int printbinary(char *buf, unsigned long x, int nbits) { unsigned long mask = 1UL << (nbits - 1); Loading Loading @@ -149,7 +152,7 @@ void show_regs(struct pt_regs *regs) printk(level); print_symbol(" RP(r2): %s\n", regs->gr[2]); dump_stack(); parisc_show_stack(current, NULL, regs); } Loading Loading @@ -183,11 +186,19 @@ static void do_show_stack(struct unwind_frame_info *info) printk("\n"); } void show_stack(struct task_struct *task, unsigned long *s) void parisc_show_stack(struct task_struct *task, unsigned long *sp, struct pt_regs *regs) { struct unwind_frame_info info; struct task_struct *t; t = task ? task : current; if (regs) { unwind_frame_init(&info, t, regs); goto show_stack; } if (!task) { if (t == current) { unsigned long sp; HERE: Loading @@ -203,12 +214,18 @@ void show_stack(struct task_struct *task, unsigned long *s) unwind_frame_init(&info, current, &r); } } else { unwind_frame_init_from_blocked_task(&info, task); unwind_frame_init_from_blocked_task(&info, t); } show_stack: do_show_stack(&info); } void show_stack(struct task_struct *t, unsigned long *sp) { return parisc_show_stack(t, sp, NULL); } int is_valid_bugaddr(unsigned long iaoq) { return 1; Loading