From: Ingo Molnar Efter hours of hair-pulling by Arjan and me the "x86_64 crashes on bootup" problem got traced back to a brown-paperbag 32/64-bit mixup. Sign extension got us lucky, but that luck vanished in 2.6.17-rc5-mm1 ... Signed-off-by: Ingo Molnar Signed-off-by: Arjan van de Ven Signed-off-by: Andrew Morton --- arch/x86_64/kernel/stacktrace.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff -puN arch/x86_64/kernel/stacktrace.c~lock-validator-stacktrace-fix-on-x86_64 arch/x86_64/kernel/stacktrace.c --- devel/arch/x86_64/kernel/stacktrace.c~lock-validator-stacktrace-fix-on-x86_64 2006-05-31 11:33:05.000000000 -0700 +++ devel-akpm/arch/x86_64/kernel/stacktrace.c 2006-05-31 11:33:05.000000000 -0700 @@ -115,9 +115,9 @@ save_context_stack(struct stack_trace *t unsigned long addr; #ifdef CONFIG_FRAME_POINTER - unsigned prev_stack = 0; + unsigned long prev_stack = 0; - while (in_range(prev_stack, (unsigned long)stack, stack_end)) { + while (in_range(prev_stack, stack, stack_end)) { pr_debug("stack: %p\n", (void *)stack); addr = (unsigned long)(((unsigned long *)stack)[1]); pr_debug("addr: %p\n", (void *)addr); _