diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2012-05-08 14:22:33 -0400 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2012-05-08 14:48:03 -0400 |
commit | 024742861124ef26dae4cfc620250f8f47ac934a (patch) | |
tree | 5c68582d406e70bd08e59afd3b23d50410264280 /arch/x86/realmode/rm | |
parent | 487f50ffeb142d8f86fff6e43a8852ce3d46c173 (diff) |
x86, realmode: Move bits to the proper sections in trampoline_64.S
Move various bits to the sections they really belong in in
trampoline_64.S. Use GLOBAL() rather than ENTRY() for data objects:
ENTRY() should only be used with code and forces alignment to 16
bytes.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Link: http://lkml.kernel.org/r/1336501366-28617-11-git-send-email-jarkko.sakkinen@intel.com
Diffstat (limited to 'arch/x86/realmode/rm')
-rw-r--r-- | arch/x86/realmode/rm/trampoline_64.S | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/arch/x86/realmode/rm/trampoline_64.S b/arch/x86/realmode/rm/trampoline_64.S index 063da008d52..66c58cf1550 100644 --- a/arch/x86/realmode/rm/trampoline_64.S +++ b/arch/x86/realmode/rm/trampoline_64.S | |||
@@ -80,6 +80,7 @@ no_longmode: | |||
80 | jmp no_longmode | 80 | jmp no_longmode |
81 | #include "../kernel/verify_cpu.S" | 81 | #include "../kernel/verify_cpu.S" |
82 | 82 | ||
83 | .section ".text32","ax" | ||
83 | .code32 | 84 | .code32 |
84 | .balign 4 | 85 | .balign 4 |
85 | ENTRY(startup_32) | 86 | ENTRY(startup_32) |
@@ -114,6 +115,7 @@ ENTRY(startup_32) | |||
114 | */ | 115 | */ |
115 | ljmpl *(pa_startup_64_vector) | 116 | ljmpl *(pa_startup_64_vector) |
116 | 117 | ||
118 | .section ".text64","ax" | ||
117 | .code64 | 119 | .code64 |
118 | .balign 4 | 120 | .balign 4 |
119 | ENTRY(startup_64) | 121 | ENTRY(startup_64) |
@@ -123,7 +125,8 @@ ENTRY(startup_64) | |||
123 | addl %esi, %eax | 125 | addl %esi, %eax |
124 | jmp *%rax | 126 | jmp *%rax |
125 | 127 | ||
126 | # Careful these need to be in the same 64K segment as the above; | 128 | .section ".rodata","a" |
129 | .balign 16 | ||
127 | tidt: | 130 | tidt: |
128 | .word 0 # idt limit = 0 | 131 | .word 0 # idt limit = 0 |
129 | .word 0, 0 # idt base = 0L | 132 | .word 0, 0 # idt base = 0L |
@@ -153,9 +156,8 @@ startup_64_vector: | |||
153 | .word __KERNEL_CS, 0 | 156 | .word __KERNEL_CS, 0 |
154 | 157 | ||
155 | .data | 158 | .data |
156 | |||
157 | .balign 4 | 159 | .balign 4 |
158 | ENTRY(trampoline_status) | 160 | GLOBAL(trampoline_status) |
159 | .long 0 | 161 | .long 0 |
160 | 162 | ||
161 | trampoline_stack: | 163 | trampoline_stack: |
@@ -164,7 +166,7 @@ trampoline_stack_end: | |||
164 | 166 | ||
165 | .globl level3_ident_pgt | 167 | .globl level3_ident_pgt |
166 | .globl level3_kernel_pgt | 168 | .globl level3_kernel_pgt |
167 | ENTRY(trampoline_level4_pgt) | 169 | GLOBAL(trampoline_level4_pgt) |
168 | level3_ident_pgt: .quad 0 | 170 | level3_ident_pgt: .quad 0 |
169 | .fill 510,8,0 | 171 | .fill 510,8,0 |
170 | level3_kernel_pgt: .quad 0 | 172 | level3_kernel_pgt: .quad 0 |