Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bf24eec3 authored by Yoshinori Sato's avatar Yoshinori Sato
Browse files

h8300: show_stack cleanup



- fix stack limit. h8300's stack not aligned 4byte.
- pritty output form.

Signed-off-by: default avatarYoshinori Sato <ysato@users.sourceforge.jp>
parent db903b46
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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 */
+8 −12
Original line number Diff line number Diff line
@@ -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);
}