summaryrefslogtreecommitdiff
path: root/arch/x86/include/asm/dwarf2.h
diff options
context:
space:
mode:
authorJan Beulich <JBeulich@suse.com>2011-09-28 19:57:52 +0400
committerIngo Molnar <mingo@elte.hu>2011-09-28 21:04:52 +0400
commiteab9e6137f237681a04649e786cc4d942bedd6d1 (patch)
tree8ab92f349f7bc33a9b0f1e93cd81ac0609157389 /arch/x86/include/asm/dwarf2.h
parente05139f2569ecf699b229a6473a86cdffed62956 (diff)
downloadlinux-eab9e6137f237681a04649e786cc4d942bedd6d1.tar.xz
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>
Diffstat (limited to 'arch/x86/include/asm/dwarf2.h')
-rw-r--r--arch/x86/include/asm/dwarf2.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/arch/x86/include/asm/dwarf2.h b/arch/x86/include/asm/dwarf2.h
index 326099199318..f6f15986df6c 100644
--- a/arch/x86/include/asm/dwarf2.h
+++ b/arch/x86/include/asm/dwarf2.h
@@ -27,6 +27,7 @@
#define CFI_REMEMBER_STATE .cfi_remember_state
#define CFI_RESTORE_STATE .cfi_restore_state
#define CFI_UNDEFINED .cfi_undefined
+#define CFI_ESCAPE .cfi_escape
#ifdef CONFIG_AS_CFI_SIGNAL_FRAME
#define CFI_SIGNAL_FRAME .cfi_signal_frame
@@ -68,6 +69,7 @@
#define CFI_REMEMBER_STATE cfi_ignore
#define CFI_RESTORE_STATE cfi_ignore
#define CFI_UNDEFINED cfi_ignore
+#define CFI_ESCAPE cfi_ignore
#define CFI_SIGNAL_FRAME cfi_ignore
#endif