Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1759418AbYGCNcc (ORCPT ); Thu, 3 Jul 2008 09:32:32 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1751229AbYGCNcW (ORCPT ); Thu, 3 Jul 2008 09:32:22 -0400 Received: from mx3.mail.elte.hu ([157.181.1.138]:50542 "EHLO mx3.mail.elte.hu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752169AbYGCNcV (ORCPT ); Thu, 3 Jul 2008 09:32:21 -0400 Date: Thu, 3 Jul 2008 15:31:32 +0200 From: Ingo Molnar To: Alexander Beregalov Cc: Linux Kernel Mailing List , linux-next@vger.kernel.org, tglx@linutronix.de, mingo@redhat.com, hpa@zytor.com, Jeremy Fitzhardinge Subject: Re: next-0703: build failure in x86/entry_64.S Message-ID: <20080703133132.GC12102@elte.hu> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.18 (2008-05-17) X-ELTE-VirusStatus: clean X-ELTE-SpamScore: -1.5 X-ELTE-SpamLevel: X-ELTE-SpamCheck: no X-ELTE-SpamVersion: ELTE 2.0 X-ELTE-SpamCheck-Details: score=-1.5 required=5.9 tests=BAYES_00 autolearn=no SpamAssassin version=3.2.3 -1.5 BAYES_00 BODY: Bayesian spam probability is 0 to 1% [score: 0.0000] Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3921 Lines: 106 * Alexander Beregalov wrote: > Hi > > AS arch/x86/kernel/entry_64.o > arch/x86/kernel/entry_64.S: Assembler messages: > arch/x86/kernel/entry_64.S:1200: Error: invalid character '_' in mnemonic > arch/x86/kernel/entry_64.S:1204: Error: invalid character '_' in mnemonic > arch/x86/kernel/entry_64.S:1208: Error: invalid character '_' in mnemonic > arch/x86/kernel/entry_64.S:1212: Error: invalid character '_' in mnemonic hm, cannot reproduce it here with linux-next-0702. but ... this looks quite similar to an issue triggered by the tip/x86/xen-64bit topic (and fixed by the patch below) - but that's not in linux-next yet. Ingo -------------> commit 6d2a6e57be1582b017a39f52385adf49d7cc4b0f Author: Jeremy Fitzhardinge Date: Fri Jun 27 12:04:03 2008 -0700 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 Cc: Nick Piggin Cc: Mark McLoughlin Cc: xen-devel Cc: Eduardo Habkost Cc: Vegard Nossum Cc: Stephen Tweedie Signed-off-by: Ingo Molnar diff --git a/include/asm-x86/irqflags.h b/include/asm-x86/irqflags.h index 484c74f..754bb3a 100644 --- a/include/asm-x86/irqflags.h +++ b/include/asm-x86/irqflags.h @@ -167,7 +167,20 @@ static inline unsigned long __raw_local_irq_save(void) #define INTERRUPT_RETURN_NMI_SAFE NATIVE_INTERRUPT_RETURN_NMI_SAFE #ifdef CONFIG_X86_64 +#define SWAPGS swapgs +/* + * Currently paravirt can't handle swapgs nicely when we + * don't have a stack we can rely on (such as a user space + * stack). So we either find a way around these or just fault + * and emulate if a guest tries to call swapgs directly. + * + * Either way, this is a good way to document that we don't + * have a reliable stack. x86_64 only. + */ #define SWAPGS_UNSAFE_STACK swapgs + +#define PARAVIRT_ADJUST_EXCEPTION_FRAME /* */ + #define INTERRUPT_RETURN iretq #define USERGS_SYSRET64 \ swapgs; \ @@ -233,15 +246,6 @@ static inline void trace_hardirqs_fixup(void) #else #ifdef CONFIG_X86_64 -/* - * Currently paravirt can't handle swapgs nicely when we - * don't have a stack we can rely on (such as a user space - * stack). So we either find a way around these or just fault - * and emulate if a guest tries to call swapgs directly. - * - * Either way, this is a good way to document that we don't - * have a reliable stack. x86_64 only. - */ #define ARCH_TRACE_IRQS_ON call trace_hardirqs_on_thunk #define ARCH_TRACE_IRQS_OFF call trace_hardirqs_off_thunk #define ARCH_LOCKDEP_SYS_EXIT call lockdep_sys_exit_thunk diff --git a/include/asm-x86/processor.h b/include/asm-x86/processor.h index a935c70..6f5e195 100644 --- a/include/asm-x86/processor.h +++ b/include/asm-x86/processor.h @@ -535,9 +535,6 @@ static inline void load_sp0(struct tss_struct *tss, } #define set_iopl_mask native_set_iopl_mask -#define SWAPGS swapgs - -#define PARAVIRT_ADJUST_EXCEPTION_FRAME /* */ #endif /* CONFIG_PARAVIRT */ /* -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/