h8300: show_stack cleanup
- fix stack limit. h8300's stack not aligned 4byte. - pritty output form. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp>
This commit is contained in:
Родитель
db903b462b
Коммит
bf24eec39a
|
@ -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 */
|
||||
|
|
|
@ -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
|
||||
|
@ -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);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче