Skip to content

Commit

Permalink
[PATCH] x86_64: fix page fault from show_trace()
Browse files Browse the repository at this point in the history
The introduction of call_softirq switching to the interrupt stack several
releases earlier resulted in a problem with the code in show_trace, which
assumes that it can pick the previous stack pointer from the end of the
interrupt stack.

Cc: Andi Kleen <ak@muc.de>
Cc: Arjan van de Ven <arjanv@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
  • Loading branch information
Jan Beulich authored and Linus Torvalds committed Jan 12, 2006
1 parent 4724e3e commit bd9cb64
Showing 1 changed file with 5 additions and 7 deletions.
12 changes: 5 additions & 7 deletions arch/x86_64/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -1045,17 +1045,15 @@ ENTRY(call_debug)
ENTRY(call_softirq)
CFI_STARTPROC
movq %gs:pda_irqstackptr,%rax
pushq %r15
CFI_ADJUST_CFA_OFFSET 8
movq %rsp,%r15
CFI_DEF_CFA_REGISTER r15
movq %rsp,%rdx
CFI_DEF_CFA_REGISTER rdx
incl %gs:pda_irqcount
cmove %rax,%rsp
pushq %rdx
/*todo CFI_DEF_CFA_EXPRESSION ...*/
call __do_softirq
movq %r15,%rsp
popq %rsp
CFI_DEF_CFA_REGISTER rsp
decl %gs:pda_irqcount
popq %r15
CFI_ADJUST_CFA_OFFSET -8
ret
CFI_ENDPROC

0 comments on commit bd9cb64

Please sign in to comment.