summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
authorMartin Hicks <mort@sgi.com>2009-01-30 10:50:54 -0600
committerH. Peter Anvin <hpa@zytor.com>2009-02-02 21:18:03 -0800
commita67798cd7bb130bf37f5ffb28f3260f4c10232db (patch)
tree4f6e19711f02fd0b860cb428a264eee15b6b3ff1 /arch/x86/kernel
parent10b888d6cec2688e65e9e128b14bf98ecd199da2 (diff)
downloadlinux-stable-a67798cd7bb130bf37f5ffb28f3260f4c10232db.tar.gz
linux-stable-a67798cd7bb130bf37f5ffb28f3260f4c10232db.tar.bz2
linux-stable-a67798cd7bb130bf37f5ffb28f3260f4c10232db.zip
x86: push old stack address on irqstack for unwinder
Impact: Fixes dumpstack and KDB on 64 bits This re-adds the old stack pointer to the top of the irqstack to help with unwinding. It was removed in commit d99015b1abbad743aa049b439c1e1dede6d0fa49 as part of the save_args out-of-line work. Both dumpstack and KDB require this information. Signed-off-by: Martin Hicks <mort@sgi.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r--arch/x86/kernel/entry_64.S1
1 files changed, 1 insertions, 0 deletions
diff --git a/arch/x86/kernel/entry_64.S b/arch/x86/kernel/entry_64.S
index e28c7a987793..a1346217e43c 100644
--- a/arch/x86/kernel/entry_64.S
+++ b/arch/x86/kernel/entry_64.S
@@ -346,6 +346,7 @@ ENTRY(save_args)
popq_cfi %rax /* move return address... */
mov %gs:pda_irqstackptr,%rsp
EMPTY_FRAME 0
+ pushq_cfi %rbp /* backlink for unwinder */
pushq_cfi %rax /* ... to the new stack */
/*
* We entered an interrupt context - irqs are off: