mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-07 06:50:43 -04:00
[PATCH] x86_64: fix page fault from show_trace()
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>
This commit is contained in:
committed by
Linus Torvalds
parent
4724e3e86d
commit
bd9cb64df1
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user