diff options
author | John W. Linville <linville@tuxdriver.com> | 2006-08-04 14:24:15 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2006-08-04 14:24:15 -0400 |
commit | 71bfe47f023c55c322607939b786ce0a44627dfc (patch) | |
tree | f59c37feb00f1df2e0f4ec282ae9c80ad6bb0cdc /arch/x86_64/kernel/entry.S | |
parent | 73c1ac1e3b6c989b9b5f7b2313ac590a1c3b6d6a (diff) | |
parent | efe78cda3596f8a6d1c2d4a6b1a221bafa3e1a48 (diff) |
Merge branch 'from-linus' into upstream
Diffstat (limited to 'arch/x86_64/kernel/entry.S')
-rw-r--r-- | arch/x86_64/kernel/entry.S | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/arch/x86_64/kernel/entry.S b/arch/x86_64/kernel/entry.S index d464dded68c..6f810424df4 100644 --- a/arch/x86_64/kernel/entry.S +++ b/arch/x86_64/kernel/entry.S @@ -513,6 +513,7 @@ END(stub_rt_sigreturn) swapgs 1: incl %gs:pda_irqcount # RED-PEN should check preempt count cmoveq %gs:pda_irqstackptr,%rsp + push %rbp # backlink for old unwinder /* * We entered an interrupt context - irqs are off: */ @@ -1139,18 +1140,21 @@ ENTRY(machine_check) END(machine_check) #endif +/* Call softirq on interrupt stack. Interrupts are off. */ ENTRY(call_softirq) CFI_STARTPROC - movq %gs:pda_irqstackptr,%rax - movq %rsp,%rdx - CFI_DEF_CFA_REGISTER rdx + push %rbp + CFI_ADJUST_CFA_OFFSET 8 + CFI_REL_OFFSET rbp,0 + mov %rsp,%rbp + CFI_DEF_CFA_REGISTER rbp incl %gs:pda_irqcount - cmove %rax,%rsp - pushq %rdx - /*todo CFI_DEF_CFA_EXPRESSION ...*/ + cmove %gs:pda_irqstackptr,%rsp + push %rbp # backlink for old unwinder call __do_softirq - popq %rsp + leaveq CFI_DEF_CFA_REGISTER rsp + CFI_ADJUST_CFA_OFFSET -8 decl %gs:pda_irqcount ret CFI_ENDPROC |