diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-generic/vmlinux.lds.h | 1 | ||||
| -rw-r--r-- | include/linux/percpu.h | 7 |
2 files changed, 8 insertions, 0 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index cb752ba72466..7440a0dceddb 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
| @@ -385,6 +385,7 @@ | |||
| 385 | . = ALIGN(align); \ | 385 | . = ALIGN(align); \ |
| 386 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ | 386 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ |
| 387 | .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { \ | 387 | .data.percpu : AT(ADDR(.data.percpu) - LOAD_OFFSET) { \ |
| 388 | *(.data.percpu.page_aligned) \ | ||
| 388 | *(.data.percpu) \ | 389 | *(.data.percpu) \ |
| 389 | *(.data.percpu.shared_aligned) \ | 390 | *(.data.percpu.shared_aligned) \ |
| 390 | } \ | 391 | } \ |
diff --git a/include/linux/percpu.h b/include/linux/percpu.h index fac3337547eb..9f2a3751873a 100644 --- a/include/linux/percpu.h +++ b/include/linux/percpu.h | |||
| @@ -23,12 +23,19 @@ | |||
| 23 | __attribute__((__section__(SHARED_ALIGNED_SECTION))) \ | 23 | __attribute__((__section__(SHARED_ALIGNED_SECTION))) \ |
| 24 | PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name \ | 24 | PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name \ |
| 25 | ____cacheline_aligned_in_smp | 25 | ____cacheline_aligned_in_smp |
| 26 | |||
| 27 | #define DEFINE_PER_CPU_PAGE_ALIGNED(type, name) \ | ||
| 28 | __attribute__((__section__(".data.percpu.page_aligned"))) \ | ||
| 29 | PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name | ||
| 26 | #else | 30 | #else |
| 27 | #define DEFINE_PER_CPU(type, name) \ | 31 | #define DEFINE_PER_CPU(type, name) \ |
| 28 | PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name | 32 | PER_CPU_ATTRIBUTES __typeof__(type) per_cpu__##name |
| 29 | 33 | ||
| 30 | #define DEFINE_PER_CPU_SHARED_ALIGNED(type, name) \ | 34 | #define DEFINE_PER_CPU_SHARED_ALIGNED(type, name) \ |
| 31 | DEFINE_PER_CPU(type, name) | 35 | DEFINE_PER_CPU(type, name) |
| 36 | |||
| 37 | #define DEFINE_PER_CPU_PAGE_ALIGNED(type, name) \ | ||
| 38 | DEFINE_PER_CPU(type, name) | ||
| 32 | #endif | 39 | #endif |
| 33 | 40 | ||
| 34 | #define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var) | 41 | #define EXPORT_PER_CPU_SYMBOL(var) EXPORT_SYMBOL(per_cpu__##var) |
