aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/ia64/Kconfig3
-rw-r--r--arch/powerpc/Kconfig3
-rw-r--r--arch/sparc64/Kconfig3
-rw-r--r--arch/x86/Kconfig3
-rw-r--r--include/asm-generic/percpu.h1
-rw-r--r--include/asm-s390/percpu.h2
-rw-r--r--include/asm-x86/percpu_32.h2
-rw-r--r--init/main.c4
8 files changed, 14 insertions, 7 deletions
diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
index 4a81b7fb191a..5a41e75ae1fe 100644
--- a/arch/ia64/Kconfig
+++ b/arch/ia64/Kconfig
@@ -80,6 +80,9 @@ config GENERIC_TIME_VSYSCALL
80 bool 80 bool
81 default y 81 default y
82 82
83config ARCH_SETS_UP_PER_CPU_AREA
84 def_bool y
85
83config DMI 86config DMI
84 bool 87 bool
85 default y 88 default y
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index c17a194beb0e..fb85f6b72fcf 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -42,6 +42,9 @@ config GENERIC_HARDIRQS
42 bool 42 bool
43 default y 43 default y
44 44
45config ARCH_SETS_UP_PER_CPU_AREA
46 def_bool PPC64
47
45config IRQ_PER_CPU 48config IRQ_PER_CPU
46 bool 49 bool
47 default y 50 default y
diff --git a/arch/sparc64/Kconfig b/arch/sparc64/Kconfig
index 1e25bce0366d..26f5791baa33 100644
--- a/arch/sparc64/Kconfig
+++ b/arch/sparc64/Kconfig
@@ -66,6 +66,9 @@ config AUDIT_ARCH
66 bool 66 bool
67 default y 67 default y
68 68
69config ARCH_SETS_UP_PER_CPU_AREA
70 def_bool y
71
69config ARCH_NO_VIRT_TO_BUS 72config ARCH_NO_VIRT_TO_BUS
70 def_bool y 73 def_bool y
71 74
diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
index 1de28e850aa4..dc80a9f1f303 100644
--- a/arch/x86/Kconfig
+++ b/arch/x86/Kconfig
@@ -97,6 +97,9 @@ config GENERIC_TIME_VSYSCALL
97 bool 97 bool
98 default X86_64 98 default X86_64
99 99
100config ARCH_SETS_UP_PER_CPU_AREA
101 def_bool X86_64
102
100config ARCH_SUPPORTS_OPROFILE 103config ARCH_SUPPORTS_OPROFILE
101 bool 104 bool
102 default y 105 default y
diff --git a/include/asm-generic/percpu.h b/include/asm-generic/percpu.h
index d85172e9ed45..b5e53b9ab1f7 100644
--- a/include/asm-generic/percpu.h
+++ b/include/asm-generic/percpu.h
@@ -3,7 +3,6 @@
3#include <linux/compiler.h> 3#include <linux/compiler.h>
4#include <linux/threads.h> 4#include <linux/threads.h>
5 5
6#define __GENERIC_PER_CPU
7#ifdef CONFIG_SMP 6#ifdef CONFIG_SMP
8 7
9extern unsigned long __per_cpu_offset[NR_CPUS]; 8extern unsigned long __per_cpu_offset[NR_CPUS];
diff --git a/include/asm-s390/percpu.h b/include/asm-s390/percpu.h
index 545857e64443..f94d0d3cdb2f 100644
--- a/include/asm-s390/percpu.h
+++ b/include/asm-s390/percpu.h
@@ -4,8 +4,6 @@
4#include <linux/compiler.h> 4#include <linux/compiler.h>
5#include <asm/lowcore.h> 5#include <asm/lowcore.h>
6 6
7#define __GENERIC_PER_CPU
8
9/* 7/*
10 * s390 uses its own implementation for per cpu data, the offset of 8 * s390 uses its own implementation for per cpu data, the offset of
11 * the cpu local data area is cached in the cpu's lowcore memory. 9 * the cpu local data area is cached in the cpu's lowcore memory.
diff --git a/include/asm-x86/percpu_32.h b/include/asm-x86/percpu_32.h
index a7ebd436f3cc..3949586bf94e 100644
--- a/include/asm-x86/percpu_32.h
+++ b/include/asm-x86/percpu_32.h
@@ -41,8 +41,6 @@
41 * PER_CPU(cpu_gdt_descr, %ebx) 41 * PER_CPU(cpu_gdt_descr, %ebx)
42 */ 42 */
43#ifdef CONFIG_SMP 43#ifdef CONFIG_SMP
44/* Same as generic implementation except for optimized local access. */
45#define __GENERIC_PER_CPU
46 44
47/* This is used for other cpus to find our section. */ 45/* This is used for other cpus to find our section. */
48extern unsigned long __per_cpu_offset[]; 46extern unsigned long __per_cpu_offset[];
diff --git a/init/main.c b/init/main.c
index f287ca5862b9..3f8aba291ed3 100644
--- a/init/main.c
+++ b/init/main.c
@@ -363,7 +363,7 @@ static inline void smp_prepare_cpus(unsigned int maxcpus) { }
363 363
364#else 364#else
365 365
366#ifdef __GENERIC_PER_CPU 366#ifndef CONFIG_ARCH_SETS_UP_PER_CPU_AREA
367unsigned long __per_cpu_offset[NR_CPUS] __read_mostly; 367unsigned long __per_cpu_offset[NR_CPUS] __read_mostly;
368 368
369EXPORT_SYMBOL(__per_cpu_offset); 369EXPORT_SYMBOL(__per_cpu_offset);
@@ -384,7 +384,7 @@ static void __init setup_per_cpu_areas(void)
384 ptr += size; 384 ptr += size;
385 } 385 }
386} 386}
387#endif /* !__GENERIC_PER_CPU */ 387#endif /* CONFIG_ARCH_SETS_UP_CPU_AREA */
388 388
389/* Called by boot processor to activate the rest. */ 389/* Called by boot processor to activate the rest. */
390static void __init smp_init(void) 390static void __init smp_init(void)