mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] x86_64: fix page fault from show_trace()
@ 2005-11-07 14:45 Jan Beulich
  0 siblings, 0 replies; only message in thread
From: Jan Beulich @ 2005-11-07 14:45 UTC (permalink / raw)
  To: Andreas Kleen; +Cc: linux-kernel, discuss

[-- Attachment #1: Type: text/plain, Size: 303 bytes --]

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.

From: Jan Beulich <jbeulich@novell.com>

(actual patch attached)

[-- Attachment #2: linux-2.6.14-x86_64-call-softirq.patch --]
[-- Type: application/octet-stream, Size: 925 bytes --]

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.

From: Jan Beulich <jbeulich@novell.com>

--- 2.6.14/arch/x86_64/kernel/entry.S	2005-10-28 02:02:08.000000000 +0200
+++ 2.6.14-nlkd/arch/x86_64/kernel/entry.S	2005-11-07 14:56:02.000000000 +0100
@@ -1024,17 +1024,15 @@ ENTRY(machine_check)
 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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2005-11-07 14:44 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-07 14:45 [PATCH] x86_64: fix page fault from show_trace() Jan Beulich

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®