Loading arch/h8300/include/asm/traps.h +1 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,6 @@ extern unsigned long *_interrupt_redirect_table; extern char _start, _etext; #define check_kernel_text(addr) \ ((addr >= (unsigned long)(&_start)) && \ (addr < (unsigned long)(&_etext))) (addr < (unsigned long)(&_etext)) && !(addr & 1)) #endif /* _H8300_TRAPS_H */ arch/h8300/kernel/traps.c +8 −12 Original line number Diff line number Diff line Loading @@ -125,17 +125,18 @@ void show_stack(struct task_struct *task, unsigned long *esp) pr_info("Stack from %08lx:", (unsigned long)stack); for (i = 0; i < kstack_depth_to_print; i++) { if (((unsigned long)stack & (THREAD_SIZE - 1)) == 0) if (((unsigned long)stack & (THREAD_SIZE - 1)) >= THREAD_SIZE-4) break; if (i % 8 == 0) pr_info("\n "); pr_info(" %08lx", *stack++); pr_info(" "); pr_cont(" %08lx", *stack++); } pr_info("\nCall Trace:"); pr_info("\nCall Trace:\n"); i = 0; stack = esp; while (((unsigned long)stack & (THREAD_SIZE - 1)) != 0) { while (((unsigned long)stack & (THREAD_SIZE - 1)) < THREAD_SIZE-4) { addr = *stack++; /* * If the address is either in the text segment of the Loading @@ -147,15 +148,10 @@ void show_stack(struct task_struct *task, unsigned long *esp) */ if (check_kernel_text(addr)) { if (i % 4 == 0) pr_info("\n "); pr_info(" [<%08lx>]", addr); pr_info(" "); pr_cont(" [<%08lx>]", addr); i++; } } pr_info("\n"); } void show_trace_task(struct task_struct *tsk) { show_stack(tsk, (unsigned long *)tsk->thread.esp0); } Loading
arch/h8300/include/asm/traps.h +1 −1 Original line number Diff line number Diff line Loading @@ -36,6 +36,6 @@ extern unsigned long *_interrupt_redirect_table; extern char _start, _etext; #define check_kernel_text(addr) \ ((addr >= (unsigned long)(&_start)) && \ (addr < (unsigned long)(&_etext))) (addr < (unsigned long)(&_etext)) && !(addr & 1)) #endif /* _H8300_TRAPS_H */
arch/h8300/kernel/traps.c +8 −12 Original line number Diff line number Diff line Loading @@ -125,17 +125,18 @@ void show_stack(struct task_struct *task, unsigned long *esp) pr_info("Stack from %08lx:", (unsigned long)stack); for (i = 0; i < kstack_depth_to_print; i++) { if (((unsigned long)stack & (THREAD_SIZE - 1)) == 0) if (((unsigned long)stack & (THREAD_SIZE - 1)) >= THREAD_SIZE-4) break; if (i % 8 == 0) pr_info("\n "); pr_info(" %08lx", *stack++); pr_info(" "); pr_cont(" %08lx", *stack++); } pr_info("\nCall Trace:"); pr_info("\nCall Trace:\n"); i = 0; stack = esp; while (((unsigned long)stack & (THREAD_SIZE - 1)) != 0) { while (((unsigned long)stack & (THREAD_SIZE - 1)) < THREAD_SIZE-4) { addr = *stack++; /* * If the address is either in the text segment of the Loading @@ -147,15 +148,10 @@ void show_stack(struct task_struct *task, unsigned long *esp) */ if (check_kernel_text(addr)) { if (i % 4 == 0) pr_info("\n "); pr_info(" [<%08lx>]", addr); pr_info(" "); pr_cont(" [<%08lx>]", addr); i++; } } pr_info("\n"); } void show_trace_task(struct task_struct *tsk) { show_stack(tsk, (unsigned long *)tsk->thread.esp0); }