mm,x86,um: move CMPXCHG_LOCAL config option
authorHeiko Carstens <heiko.carstens@de.ibm.com>
Fri, 13 Jan 2012 01:17:30 +0000 (17:17 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 13 Jan 2012 04:13:03 +0000 (20:13 -0800)
Move CMPXCHG_LOCAL and rename it to HAVE_CMPXCHG_LOCAL so architectures
can simply select the option if it is supported.

Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
Acked-by: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

arch/Kconfig
arch/x86/Kconfig
arch/x86/Kconfig.cpu
arch/x86/um/Kconfig
mm/vmstat.c

index a2c5c07..22182a8 100644 (file)
@@ -193,4 +193,7 @@ config HAVE_ALIGNED_STRUCT_PAGE
          on a struct page for better performance. However selecting this
          might increase the size of a struct page by a word.
 
+config HAVE_CMPXCHG_LOCAL
+       bool
+
 source "kernel/gcov/Kconfig"
index 5201a2c..59717fd 100644 (file)
@@ -61,6 +61,7 @@ config X86
        select HAVE_PERF_EVENTS_NMI
        select ANON_INODES
        select HAVE_ALIGNED_STRUCT_PAGE if SLUB && !M386
+       select HAVE_CMPXCHG_LOCAL if !M386
        select HAVE_ARCH_KMEMCHECK
        select HAVE_USER_RETURN_NOTIFIER
        select ARCH_BINFMT_ELF_RANDOMIZE_PIE
index e3ca7e0..99d2ab8 100644 (file)
@@ -309,9 +309,6 @@ config X86_INTERNODE_CACHE_SHIFT
 config X86_CMPXCHG
        def_bool X86_64 || (X86_32 && !M386)
 
-config CMPXCHG_LOCAL
-       def_bool X86_64 || (X86_32 && !M386)
-
 config CMPXCHG_DOUBLE
        def_bool y
 
index 1d97bd8..a62bfc6 100644 (file)
@@ -6,10 +6,6 @@ menu "UML-specific options"
 
 menu "Host processor type and features"
 
-config CMPXCHG_LOCAL
-       bool
-       default n
-
 config CMPXCHG_DOUBLE
        bool
        default n
index 8fd603b..f600557 100644 (file)
@@ -295,7 +295,7 @@ void __dec_zone_page_state(struct page *page, enum zone_stat_item item)
 }
 EXPORT_SYMBOL(__dec_zone_page_state);
 
-#ifdef CONFIG_CMPXCHG_LOCAL
+#ifdef CONFIG_HAVE_CMPXCHG_LOCAL
 /*
  * If we have cmpxchg_local support then we do not need to incur the overhead
  * that comes with local_irq_save/restore if we use this_cpu_cmpxchg.