x86-64: Fix CFI data for interrupt frames
authorJan Beulich <JBeulich@suse.com>
Wed, 28 Sep 2011 15:57:52 +0000 (16:57 +0100)
committerIngo Molnar <mingo@elte.hu>
Wed, 28 Sep 2011 17:04:52 +0000 (19:04 +0200)
commiteab9e6137f237681a04649e786cc4d942bedd6d1
tree8ab92f349f7bc33a9b0f1e93cd81ac0609157389
parente05139f2569ecf699b229a6473a86cdffed62956
x86-64: Fix CFI data for interrupt frames

The patch titled "x86: Don't use frame pointer to save old stack
on irq entry" did not properly adjust CFI directives, so this
patch is a follow-up to that one.

With the old stack pointer no longer stored in a callee-saved
register (plus some offset), we now have to use a CFA expression
to describe the memory location where it is being found. This
requires the use of .cfi_escape (allowing arbitrary byte streams
to be emitted into .eh_frame), as there is no
.cfi_def_cfa_expression (which also cannot reasonably be
expected, as it would require a full expression parser).

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Link: http://lkml.kernel.org/r/4E8360200200007800058467@nat28.tlf.novell.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
arch/x86/include/asm/dwarf2.h
arch/x86/kernel/entry_64.S