[PATCH 06/11] x86: use NOSAVE_DATA macro for .data.nosave section.

From: Tim Abbott
Date: Thu Apr 30 2009 - 20:13:58 EST


.data.nosave should not need a separate output section; this change
moves it into the .data section.

On x86_64, this has the consequence of moving .data.nosave inside
_edata, which I think should be harmless.

Signed-off-by: Tim Abbott <tabbott@xxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
---
arch/x86/kernel/vmlinux.lds.S | 29 ++++++-----------------------
1 files changed, 6 insertions(+), 23 deletions(-)

diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
index 791afa7..88b059b 100644
--- a/arch/x86/kernel/vmlinux.lds.S
+++ b/arch/x86/kernel/vmlinux.lds.S
@@ -103,6 +103,7 @@ SECTIONS
. = ALIGN(PAGE_SIZE);
.data : AT(ADDR(.data) - LOAD_OFFSET) {
PAGE_ALIGNED_DATA
+ NOSAVE_DATA
DATA_DATA
CONSTRUCTORS

@@ -113,17 +114,6 @@ SECTIONS
} :data

#ifdef CONFIG_X86_32
- /* 32 bit has nosave before _edata */
- . = ALIGN(PAGE_SIZE);
- .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
- __nosave_begin = .;
- *(.data.nosave)
- . = ALIGN(PAGE_SIZE);
- __nosave_end = .;
- }
-#endif
-
-#ifdef CONFIG_X86_32
. = ALIGN(32);
#else
. = ALIGN(PAGE_SIZE);
@@ -323,7 +313,7 @@ SECTIONS
#if defined(CONFIG_X86_64) && defined(CONFIG_SMP)
/*
* percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the
- * output PHDR, so the next output section - __data_nosave - should
+ * output PHDR, so the next output section - .bss - should
* start another section data.init2. Also, pda should be at the head of
* percpu area. Preallocate it and define the percpu offset symbol
* so that it can be accessed as a percpu variable.
@@ -341,17 +331,6 @@ SECTIONS
__init_end = .;
}

-#ifdef CONFIG_X86_64
- .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
- . = ALIGN(PAGE_SIZE);
- __nosave_begin = .;
- *(.data.nosave)
- . = ALIGN(PAGE_SIZE);
- __nosave_end = .;
- } :data.init2
- /* use another section data.init2, see PERCPU_VADDR() above */
-#endif
-
/* BSS */
. = ALIGN(PAGE_SIZE);
.bss : AT(ADDR(.bss) - LOAD_OFFSET) {
@@ -361,6 +340,10 @@ SECTIONS
. = ALIGN(4);
__bss_stop = .;
}
+#ifdef CONFIG_X86_64
+ :data.init2
+#endif
+ /* use another section data.init2, see PERCPU_VADDR() above */

. = ALIGN(PAGE_SIZE);
.brk : AT(ADDR(.brk) - LOAD_OFFSET) {
--
1.6.2.1

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/