diff options
-rw-r--r-- | include/asm-generic/vmlinux.lds.h | 4 | ||||
-rw-r--r-- | include/linux/percpu-defs.h | 9 |
2 files changed, 13 insertions, 0 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h index 8a92a170fb7d..d7e7b21511b1 100644 --- a/include/asm-generic/vmlinux.lds.h +++ b/include/asm-generic/vmlinux.lds.h | |||
@@ -677,7 +677,9 @@ | |||
677 | - LOAD_OFFSET) { \ | 677 | - LOAD_OFFSET) { \ |
678 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ | 678 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ |
679 | *(.data..percpu..first) \ | 679 | *(.data..percpu..first) \ |
680 | . = ALIGN(PAGE_SIZE); \ | ||
680 | *(.data..percpu..page_aligned) \ | 681 | *(.data..percpu..page_aligned) \ |
682 | *(.data..percpu..readmostly) \ | ||
681 | *(.data..percpu) \ | 683 | *(.data..percpu) \ |
682 | *(.data..percpu..shared_aligned) \ | 684 | *(.data..percpu..shared_aligned) \ |
683 | VMLINUX_SYMBOL(__per_cpu_end) = .; \ | 685 | VMLINUX_SYMBOL(__per_cpu_end) = .; \ |
@@ -703,6 +705,8 @@ | |||
703 | VMLINUX_SYMBOL(__per_cpu_load) = .; \ | 705 | VMLINUX_SYMBOL(__per_cpu_load) = .; \ |
704 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ | 706 | VMLINUX_SYMBOL(__per_cpu_start) = .; \ |
705 | *(.data..percpu..first) \ | 707 | *(.data..percpu..first) \ |
708 | . = ALIGN(PAGE_SIZE); \ | ||
709 | *(.data..percpu..readmostly) \ | ||
706 | *(.data..percpu..page_aligned) \ | 710 | *(.data..percpu..page_aligned) \ |
707 | *(.data..percpu) \ | 711 | *(.data..percpu) \ |
708 | *(.data..percpu..shared_aligned) \ | 712 | *(.data..percpu..shared_aligned) \ |
diff --git a/include/linux/percpu-defs.h b/include/linux/percpu-defs.h index ce2dc655cd1d..27ef6b190ea6 100644 --- a/include/linux/percpu-defs.h +++ b/include/linux/percpu-defs.h | |||
@@ -139,6 +139,15 @@ | |||
139 | __aligned(PAGE_SIZE) | 139 | __aligned(PAGE_SIZE) |
140 | 140 | ||
141 | /* | 141 | /* |
142 | * Declaration/definition used for per-CPU variables that must be read mostly. | ||
143 | */ | ||
144 | #define DECLARE_PER_CPU_READ_MOSTLY(type, name) \ | ||
145 | DECLARE_PER_CPU_SECTION(type, name, "..readmostly") | ||
146 | |||
147 | #define DEFINE_PER_CPU_READ_MOSTLY(type, name) \ | ||
148 | DEFINE_PER_CPU_SECTION(type, name, "..readmostly") | ||
149 | |||
150 | /* | ||
142 | * Intermodule exports for per-CPU variables. sparse forgets about | 151 | * Intermodule exports for per-CPU variables. sparse forgets about |
143 | * address space across EXPORT_SYMBOL(), change EXPORT_SYMBOL() to | 152 | * address space across EXPORT_SYMBOL(), change EXPORT_SYMBOL() to |
144 | * noop if __CHECKER__. | 153 | * noop if __CHECKER__. |