aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-x86/irqflags.h
diff options
context:
space:
mode:
authorJeremy Fitzhardinge <jeremy@goop.org>2008-06-27 15:04:03 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-08 07:16:05 -0400
commitdf366e9822beca97115ba9745cbe1ea1f26fb111 (patch)
treec41f5c68b9bbe362369d8ef2b1292c187e9fb21f /include/asm-x86/irqflags.h
parentf3294a33e765d8308c3e17b951a13e0db9cf5f00 (diff)
x86_64: fix non-paravirt compilation
Make sure SWAPGS and PARAVIRT_ADJUST_EXCEPTION_FRAME are properly defined when CONFIG_PARAVIRT is off. Fixes Ingo's build failure: arch/x86/kernel/entry_64.S: Assembler messages: arch/x86/kernel/entry_64.S:1201: Error: invalid character '_' in mnemonic arch/x86/kernel/entry_64.S:1205: Error: invalid character '_' in mnemonic arch/x86/kernel/entry_64.S:1209: Error: invalid character '_' in mnemonic arch/x86/kernel/entry_64.S:1213: Error: invalid character '_' in mnemonic Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com> Cc: Nick Piggin <npiggin@suse.de> Cc: Mark McLoughlin <markmc@redhat.com> Cc: xen-devel <xen-devel@lists.xensource.com> Cc: Eduardo Habkost <ehabkost@redhat.com> Cc: Vegard Nossum <vegard.nossum@gmail.com> Cc: Stephen Tweedie <sct@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/asm-x86/irqflags.h')
-rw-r--r--include/asm-x86/irqflags.h22
1 files changed, 13 insertions, 9 deletions
diff --git a/include/asm-x86/irqflags.h b/include/asm-x86/irqflags.h
index d17e1f623dbb..17e7a1701c97 100644
--- a/include/asm-x86/irqflags.h
+++ b/include/asm-x86/irqflags.h
@@ -111,7 +111,20 @@ static inline unsigned long __raw_local_irq_save(void)
111#define DISABLE_INTERRUPTS(x) cli 111#define DISABLE_INTERRUPTS(x) cli
112 112
113#ifdef CONFIG_X86_64 113#ifdef CONFIG_X86_64
114#define SWAPGS swapgs
115/*
116 * Currently paravirt can't handle swapgs nicely when we
117 * don't have a stack we can rely on (such as a user space
118 * stack). So we either find a way around these or just fault
119 * and emulate if a guest tries to call swapgs directly.
120 *
121 * Either way, this is a good way to document that we don't
122 * have a reliable stack. x86_64 only.
123 */
114#define SWAPGS_UNSAFE_STACK swapgs 124#define SWAPGS_UNSAFE_STACK swapgs
125
126#define PARAVIRT_ADJUST_EXCEPTION_FRAME /* */
127
115#define INTERRUPT_RETURN iretq 128#define INTERRUPT_RETURN iretq
116#define USERGS_SYSRET64 \ 129#define USERGS_SYSRET64 \
117 swapgs; \ 130 swapgs; \
@@ -177,15 +190,6 @@ static inline void trace_hardirqs_fixup(void)
177#else 190#else
178 191
179#ifdef CONFIG_X86_64 192#ifdef CONFIG_X86_64
180/*
181 * Currently paravirt can't handle swapgs nicely when we
182 * don't have a stack we can rely on (such as a user space
183 * stack). So we either find a way around these or just fault
184 * and emulate if a guest tries to call swapgs directly.
185 *
186 * Either way, this is a good way to document that we don't
187 * have a reliable stack. x86_64 only.
188 */
189#define ARCH_TRACE_IRQS_ON call trace_hardirqs_on_thunk 193#define ARCH_TRACE_IRQS_ON call trace_hardirqs_on_thunk
190#define ARCH_TRACE_IRQS_OFF call trace_hardirqs_off_thunk 194#define ARCH_TRACE_IRQS_OFF call trace_hardirqs_off_thunk
191#define ARCH_LOCKDEP_SYS_EXIT call lockdep_sys_exit_thunk 195#define ARCH_LOCKDEP_SYS_EXIT call lockdep_sys_exit_thunk