x86: push old stack address on irqstack for unwinder
authorMartin Hicks <mort@sgi.com>
Fri, 30 Jan 2009 16:50:54 +0000 (10:50 -0600)
committerH. Peter Anvin <hpa@zytor.com>
Tue, 3 Feb 2009 05:18:03 +0000 (21:18 -0800)
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>
arch/x86/kernel/entry_64.S

index e28c7a987793cbd25c628c7568fc15ca2c8c39f5..a1346217e43c4d6cc636fa80ca70853970e64417 100644 (file)
@@ -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: