diff options
| author | Martin Hicks <mort@sgi.com> | 2009-01-30 11:50:54 -0500 |
|---|---|---|
| committer | H. Peter Anvin <hpa@zytor.com> | 2009-02-03 00:18:03 -0500 |
| commit | a67798cd7bb130bf37f5ffb28f3260f4c10232db (patch) | |
| tree | 4f6e19711f02fd0b860cb428a264eee15b6b3ff1 | |
| parent | 10b888d6cec2688e65e9e128b14bf98ecd199da2 (diff) | |
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>
| -rw-r--r-- | arch/x86/kernel/entry_64.S | 1 |
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) | |||
| 346 | popq_cfi %rax /* move return address... */ | 346 | popq_cfi %rax /* move return address... */ |
| 347 | mov %gs:pda_irqstackptr,%rsp | 347 | mov %gs:pda_irqstackptr,%rsp |
| 348 | EMPTY_FRAME 0 | 348 | EMPTY_FRAME 0 |
| 349 | pushq_cfi %rbp /* backlink for unwinder */ | ||
| 349 | pushq_cfi %rax /* ... to the new stack */ | 350 | pushq_cfi %rax /* ... to the new stack */ |
| 350 | /* | 351 | /* |
| 351 | * We entered an interrupt context - irqs are off: | 352 | * We entered an interrupt context - irqs are off: |
