diff options
author | Tim Abbott <tabbott@ksplice.com> | 2009-09-16 16:44:27 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2009-09-18 13:21:49 -0400 |
commit | 1dc818c1c574a4caa7b575bd9018d04090fb6c86 (patch) | |
tree | 346f49d1004f2c8024bb931ea5164060a10d6cc9 /arch | |
parent | d223246ef7e6d73c8e3d9b58f27f2eb3fe95e25d (diff) |
x86: convert compressed loader to use __HEAD and HEAD_TEXT macros.
This has the consequence of changing the section name use for head
code from ".text.head" to ".head.text".
Linus suggested that we merge the ".text.head" section with ".text"
(presumably while preserving the fact that the head code starts at 0).
When I tried this it caused the kernel to not boot.
Signed-off-by: Tim Abbott <tabbott@ksplice.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/boot/compressed/head_32.S | 3 | ||||
-rw-r--r-- | arch/x86/boot/compressed/head_64.S | 3 | ||||
-rw-r--r-- | arch/x86/boot/compressed/vmlinux.lds.S | 6 |
3 files changed, 8 insertions, 4 deletions
diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S index 75e4f001e706..f543b70ffae2 100644 --- a/arch/x86/boot/compressed/head_32.S +++ b/arch/x86/boot/compressed/head_32.S | |||
@@ -23,13 +23,14 @@ | |||
23 | */ | 23 | */ |
24 | .text | 24 | .text |
25 | 25 | ||
26 | #include <linux/init.h> | ||
26 | #include <linux/linkage.h> | 27 | #include <linux/linkage.h> |
27 | #include <asm/segment.h> | 28 | #include <asm/segment.h> |
28 | #include <asm/page_types.h> | 29 | #include <asm/page_types.h> |
29 | #include <asm/boot.h> | 30 | #include <asm/boot.h> |
30 | #include <asm/asm-offsets.h> | 31 | #include <asm/asm-offsets.h> |
31 | 32 | ||
32 | .section ".text.head","ax",@progbits | 33 | __HEAD |
33 | ENTRY(startup_32) | 34 | ENTRY(startup_32) |
34 | cld | 35 | cld |
35 | /* | 36 | /* |
diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S index f62c284db9eb..077e1b69198e 100644 --- a/arch/x86/boot/compressed/head_64.S +++ b/arch/x86/boot/compressed/head_64.S | |||
@@ -24,6 +24,7 @@ | |||
24 | .code32 | 24 | .code32 |
25 | .text | 25 | .text |
26 | 26 | ||
27 | #include <linux/init.h> | ||
27 | #include <linux/linkage.h> | 28 | #include <linux/linkage.h> |
28 | #include <asm/segment.h> | 29 | #include <asm/segment.h> |
29 | #include <asm/pgtable_types.h> | 30 | #include <asm/pgtable_types.h> |
@@ -33,7 +34,7 @@ | |||
33 | #include <asm/processor-flags.h> | 34 | #include <asm/processor-flags.h> |
34 | #include <asm/asm-offsets.h> | 35 | #include <asm/asm-offsets.h> |
35 | 36 | ||
36 | .section ".text.head" | 37 | __HEAD |
37 | .code32 | 38 | .code32 |
38 | ENTRY(startup_32) | 39 | ENTRY(startup_32) |
39 | cld | 40 | cld |
diff --git a/arch/x86/boot/compressed/vmlinux.lds.S b/arch/x86/boot/compressed/vmlinux.lds.S index cc353e1b3ffd..f4193bb48782 100644 --- a/arch/x86/boot/compressed/vmlinux.lds.S +++ b/arch/x86/boot/compressed/vmlinux.lds.S | |||
@@ -1,3 +1,5 @@ | |||
1 | #include <asm-generic/vmlinux.lds.h> | ||
2 | |||
1 | OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) | 3 | OUTPUT_FORMAT(CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT, CONFIG_OUTPUT_FORMAT) |
2 | 4 | ||
3 | #undef i386 | 5 | #undef i386 |
@@ -18,9 +20,9 @@ SECTIONS | |||
18 | * address 0. | 20 | * address 0. |
19 | */ | 21 | */ |
20 | . = 0; | 22 | . = 0; |
21 | .text.head : { | 23 | .head.text : { |
22 | _head = . ; | 24 | _head = . ; |
23 | *(.text.head) | 25 | HEAD_TEXT |
24 | _ehead = . ; | 26 | _ehead = . ; |
25 | } | 27 | } |
26 | .rodata.compressed : { | 28 | .rodata.compressed : { |