Commit fd073194 authored by Ingo Molnar's avatar Ingo Molnar

x86, vmlinux.lds: fix relocatable symbols

__init_begin/_end symbols should be inside sections as well,
otherwise the relocatable kernel gets confused when freeing
init sections in the wrong place.

[ Impact: fix bootup crash ]

Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Tim Abbott <tabbott@MIT.EDU>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
LKML-Reference: <20090429105056.GA28720@uranus.ravnborg.org>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 91fd7fe8
...@@ -255,8 +255,8 @@ SECTIONS ...@@ -255,8 +255,8 @@ SECTIONS
/* Init code and data - will be freed after init */ /* Init code and data - will be freed after init */
. = ALIGN(PAGE_SIZE); . = ALIGN(PAGE_SIZE);
__init_begin = .; /* paired with __init_end */
.init.text : AT(ADDR(.init.text) - LOAD_OFFSET) { .init.text : AT(ADDR(.init.text) - LOAD_OFFSET) {
__init_begin = .; /* paired with __init_end */
_sinittext = .; _sinittext = .;
INIT_TEXT INIT_TEXT
_einittext = .; _einittext = .;
...@@ -346,8 +346,11 @@ SECTIONS ...@@ -346,8 +346,11 @@ SECTIONS
#endif #endif
. = ALIGN(PAGE_SIZE); . = ALIGN(PAGE_SIZE);
/* freed after init ends here */ /* freed after init ends here */
__init_end = .; .init.end : AT(ADDR(.init.end) - LOAD_OFFSET) {
__init_end = .;
}
#ifdef CONFIG_X86_64 #ifdef CONFIG_X86_64
.data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) { .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment