|
@@ -290,6 +290,12 @@ void dump_trace(struct task_struct *tsk, struct pt_regs *regs, unsigned long * s
|
|
if (tsk && tsk != current)
|
|
if (tsk && tsk != current)
|
|
stack = (unsigned long *)tsk->thread.rsp;
|
|
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
|
|
* Print function call entries within a stack. 'cond' is the
|