diff options
author | travis@sgi.com <travis@sgi.com> | 2008-01-30 07:32:52 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-01-30 07:32:52 -0500 |
commit | 5280e004fc22314122c84978c0b6a741cf96dc0f (patch) | |
tree | 008b96d81a924be764629f62f98fa5f7c9e04773 /include/linux/percpu.h | |
parent | b32ef636a59aad12f9f9b5dc34c93222842c58ba (diff) |
percpu: move arch XX_PER_CPU_XX definitions into linux/percpu.h
- Special consideration for IA64: Add the ability to specify
arch specific per cpu flags
- remove .data.percpu attribute from DEFINE_PER_CPU for non-smp case.
The arch definitions are all the same. So move them into linux/percpu.h.
We cannot move DECLARE_PER_CPU since some include files just include
asm/percpu.h to avoid include recursion problems.
Cc: Rusty Russell <rusty@rustcorp.com.au>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
Signed-off-by: Mike Travis <travis@sgi.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include/linux/percpu.h')
-rw-r--r-- | include/linux/percpu.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/include/linux/percpu.h b/include/linux/percpu.h index 926adaae0f96..00412bb494c4 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h | |||
@@ -9,6 +9,30 @@ | |||
9 | 9 | ||
10 | #include <asm/percpu.h> | 10 | #include <asm/percpu.h> |
11 | 11 | ||
12 | #ifndef PER_CPU_ATTRIBUTES | ||
13 | #define PER_CPU_ATTRIBUTES | ||
14 | #endif | ||
15 | |||
16 | #ifdef CONFIG_SMP | ||
17 | #define DEFINE_PER_CPU(type, name) \ | ||
18 | __attribute__((__section__(".data.percpu"))) \ | ||
19 | PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name | ||
20 | |||
21 | #define DEFINE_PER_CPU_SHARED_ALIGNED(type, name) \ | ||
22 | __attribute__((__section__(".data.percpu.shared_aligned"))) \ | ||
23 | PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name \ | ||
24 | ____cacheline_aligned_in_smp | ||
25 | #else | ||
26 | #define DEFINE_PER_CPU(type, name) \ | ||
27 | PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name | ||
28 | |||
29 | #define DEFINE_PER_CPU_SHARED_ALIGNED(type, name) \ | ||
30 | DEFINE_PER_CPU(type, name) | ||
31 | #endif | ||
32 | |||
33 | #define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var) | ||
34 | #define EXPORT_PER_CPU_SYMBOL_GPL(var) EXPORT_SYMBOL_GPL(per_cpu__##var) | ||
35 | |||
12 | /* Enough to cover all DEFINE_PER_CPUs in kernel, including modules. */ | 36 | /* Enough to cover all DEFINE_PER_CPUs in kernel, including modules. */ |
13 | #ifndef PERCPU_ENOUGH_ROOM | 37 | #ifndef PERCPU_ENOUGH_ROOM |
14 | #ifdef CONFIG_MODULES | 38 | #ifdef CONFIG_MODULES |