aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJan Beulich <jbeulich@novell.com>2009-03-12 06:58:33 -0400
committerSam Ravnborg <sam@ravnborg.org>2009-06-09 16:37:43 -0400
commitfd6c3a8dc44329d3aff9a578b5120982f63711ee (patch)
treeba7b7a183d0db95a4ddb33e83a075f963a2028e3 /include
parent6d9923219c6cd1df360f8823253717623f3ad348 (diff)
initconst adjustments
- add .init.rodata to INIT_DATA, and group all initconst flavors together - move strings generated from __setup_param() into .init.rodata - add .*init.rodata to modpost's sets of init sections - make modpost warn about references between meminit and cpuinit as well as memexit and cpuexit sections (as CPU and memory hotplug are independently selectable features) Signed-off-by: Jan Beulich <jbeulich@novell.com> Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Diffstat (limited to 'include')
-rw-r--r--include/asm-generic/vmlinux.lds.h5
-rw-r--r--include/linux/init.h3
2 files changed, 5 insertions, 3 deletions
diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
index 89853bcd27a..3edb1149974 100644
--- a/include/asm-generic/vmlinux.lds.h
+++ b/include/asm-generic/vmlinux.lds.h
@@ -336,10 +336,11 @@
336#define INIT_DATA \ 336#define INIT_DATA \
337 *(.init.data) \ 337 *(.init.data) \
338 DEV_DISCARD(init.data) \ 338 DEV_DISCARD(init.data) \
339 DEV_DISCARD(init.rodata) \
340 CPU_DISCARD(init.data) \ 339 CPU_DISCARD(init.data) \
341 CPU_DISCARD(init.rodata) \
342 MEM_DISCARD(init.data) \ 340 MEM_DISCARD(init.data) \
341 *(.init.rodata) \
342 DEV_DISCARD(init.rodata) \
343 CPU_DISCARD(init.rodata) \
343 MEM_DISCARD(init.rodata) 344 MEM_DISCARD(init.rodata)
344 345
345#define INIT_TEXT \ 346#define INIT_TEXT \
diff --git a/include/linux/init.h b/include/linux/init.h
index 0e06c176f18..9f70c9f25d4 100644
--- a/include/linux/init.h
+++ b/include/linux/init.h
@@ -225,7 +225,8 @@ struct obs_kernel_param {
225 * obs_kernel_param "array" too far apart in .init.setup. 225 * obs_kernel_param "array" too far apart in .init.setup.
226 */ 226 */
227#define __setup_param(str, unique_id, fn, early) \ 227#define __setup_param(str, unique_id, fn, early) \
228 static char __setup_str_##unique_id[] __initdata __aligned(1) = str; \ 228 static const char __setup_str_##unique_id[] __initconst \
229 __aligned(1) = str; \
229 static struct obs_kernel_param __setup_##unique_id \ 230 static struct obs_kernel_param __setup_##unique_id \
230 __used __section(.init.setup) \ 231 __used __section(.init.setup) \
231 __attribute__((aligned((sizeof(long))))) \ 232 __attribute__((aligned((sizeof(long))))) \