b88d4f1d39
If CONFIG_FRAME_POINTERS is enabled, and one does a dump_stack() during early SMP init, an infinite stackdump and a bootup hang happens: [<c0104e7f>] show_trace+0xd/0xf [<c0104e96>] dump_stack+0x15/0x17 [<c01440df>] save_trace+0xc3/0xce [<c014527d>] mark_lock+0x8c/0x4fe [<c0145df5>] __lockdep_acquire+0x44e/0xaa5 [<c0146798>] lockdep_acquire+0x68/0x84 [<c1048699>] _spin_lock+0x21/0x2f [<c010d918>] prepare_set+0xd/0x5d [<c010daa8>] generic_set_all+0x1d/0x201 [<c010ca9a>] mtrr_ap_init+0x23/0x3b [<c010ada8>] identify_cpu+0x2a7/0x2af [<c01192a7>] smp_store_cpu_info+0x2f/0xb4 [<c01197d0>] start_secondary+0xb5/0x3ec [<c104ec11>] end_of_stack_stop_unwind_function+0x1/0x4 [<c104ec11>] end_of_stack_stop_unwind_function+0x1/0x4 [<c104ec11>] end_of_stack_stop_unwind_function+0x1/0x4 [<c104ec11>] end_of_stack_stop_unwind_function+0x1/0x4 [<c104ec11>] end_of_stack_stop_unwind_function+0x1/0x4 [<c104ec11>] end_of_stack_stop_unwind_function+0x1/0x4 [<c104ec11>] end_of_stack_stop_unwind_function+0x1/0x4 [<c104ec11>] end_of_stack_stop_unwind_function+0x1/0x4 [...] Due to "end_of_stack_stop_unwind_function" recursing back to itself in the EBP stackframe-walker. So avoid this type of recursion when walking the stack . Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org> |
||
---|---|---|
.. | ||
alpha | ||
arm | ||
arm26 | ||
cris | ||
frv | ||
h8300 | ||
i386 | ||
ia64 | ||
m32r | ||
m68k | ||
m68knommu | ||
mips | ||
parisc | ||
powerpc | ||
ppc | ||
s390 | ||
sh | ||
sh64 | ||
sparc | ||
sparc64 | ||
um | ||
v850 | ||
x86_64 | ||
xtensa |