Messages in this thread | | | Date | Thu, 1 Oct 2009 08:11:09 +0200 | From | Ingo Molnar <> | Subject | Re: [GIT PULL] scheduler fixes |
| |
* Eric Dumazet <eric.dumazet@gmail.com> wrote:
> [PATCH] x86: Dont generate cmpxchg8b_emu if CONFIG_X86_CMPXCHG64=y > > cmpxchg8b_emu helper wont be used if CONFIG_X86_CMPXCHG64=y > > Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> > --- > arch/x86/kernel/i386_ksyms_32.c | 2 ++ > arch/x86/lib/Makefile | 6 ++++-- > 2 files changed, 6 insertions(+), 2 deletions(-) > > diff --git a/arch/x86/kernel/i386_ksyms_32.c b/arch/x86/kernel/i386_ksyms_32.c > index 1736c5a..9c3bd4a 100644 > --- a/arch/x86/kernel/i386_ksyms_32.c > +++ b/arch/x86/kernel/i386_ksyms_32.c > @@ -15,8 +15,10 @@ EXPORT_SYMBOL(mcount); > * the export, but dont use it from C code, it is used > * by assembly code and is not using C calling convention! > */ > +#ifndef CONFIG_X86_CMPXCHG64 > extern void cmpxchg8b_emu(void); > EXPORT_SYMBOL(cmpxchg8b_emu); > +#endif > > /* Networking helper routines. */ > EXPORT_SYMBOL(csum_partial_copy_generic); > diff --git a/arch/x86/lib/Makefile b/arch/x86/lib/Makefile > index 3e549b8..c309b82 100644 > --- a/arch/x86/lib/Makefile > +++ b/arch/x86/lib/Makefile > @@ -15,8 +15,10 @@ ifeq ($(CONFIG_X86_32),y) > obj-y += atomic64_32.o > lib-y += checksum_32.o > lib-y += strstr_32.o > - lib-y += semaphore_32.o string_32.o cmpxchg8b_emu.o > - > + lib-y += semaphore_32.o string_32.o > +ifeq ($(CONFIG_X86_CMPXCHG64),n) > + lib-y += cmpxchg8b_emu.o > +endif > lib-$(CONFIG_X86_USE_3DNOW) += mmx_32.o > else > obj-y += io_64.o iomap_copy_64.o
That's not enough - the inline assembly code in arch/x86/include/asm/cmpxchg_32.h should also not reference cmpxchg8b_emu in that case.
Ingo
| |