diff options
Diffstat (limited to 'arch/x86_64')
-rw-r--r-- | arch/x86_64/kernel/traps.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/x86_64/kernel/traps.c b/arch/x86_64/kernel/traps.c index 7819022a8db5..a153d0a01b72 100644 --- a/arch/x86_64/kernel/traps.c +++ b/arch/x86_64/kernel/traps.c | |||
@@ -290,6 +290,12 @@ void dump_trace(struct task_struct *tsk, struct pt_regs *regs, unsigned long * s | |||
290 | if (tsk && tsk != current) | 290 | if (tsk && tsk != current) |
291 | stack = (unsigned long *)tsk->thread.rsp; | 291 | stack = (unsigned long *)tsk->thread.rsp; |
292 | } | 292 | } |
293 | /* | ||
294 | * Align the stack pointer on word boundary, later loops | ||
295 | * rely on that (and corruption / debug info bugs can cause | ||
296 | * unaligned values here): | ||
297 | */ | ||
298 | stack = (unsigned long *)((unsigned long)stack & ~(sizeof(long)-1)); | ||
293 | 299 | ||
294 | /* | 300 | /* |
295 | * Print function call entries within a stack. 'cond' is the | 301 | * Print function call entries within a stack. 'cond' is the |