From 970392c9143d20b68c2f74b85e9e320b805c394d Mon Sep 17 00:00:00 2001 From: Ingo Molnar Date: Fri, 17 Nov 2006 05:57:49 +0100 Subject: [PATCH] --- yaml --- r: 41003 b: refs/heads/master c: 0796bdb7e9e4a48b401f4fba1ee5dc79a45528ef h: refs/heads/master i: 41001: ee7fc8f406eaaedaf9bd565db72aa2f57cb71df7 40999: 61a2ef1d5e11bc756cdbfe90402d0a986c3d1c71 v: v3 --- [refs] | 2 +- trunk/arch/x86_64/kernel/traps.c | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index e8eb298276e8..791f5b130f99 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4be703906cffd5902028d20626e636ba21fb0b61 +refs/heads/master: 0796bdb7e9e4a48b401f4fba1ee5dc79a45528ef diff --git a/trunk/arch/x86_64/kernel/traps.c b/trunk/arch/x86_64/kernel/traps.c index 7819022a8db5..a153d0a01b72 100644 --- a/trunk/arch/x86_64/kernel/traps.c +++ b/trunk/arch/x86_64/kernel/traps.c @@ -290,6 +290,12 @@ void dump_trace(struct task_struct *tsk, struct pt_regs *regs, unsigned long * s if (tsk && tsk != current) stack = (unsigned long *)tsk->thread.rsp; } + /* + * Align the stack pointer on word boundary, later loops + * rely on that (and corruption / debug info bugs can cause + * unaligned values here): + */ + stack = (unsigned long *)((unsigned long)stack & ~(sizeof(long)-1)); /* * Print function call entries within a stack. 'cond' is the