diff options
Diffstat (limited to 'include/linux')
-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 |