Commit 02474286 authored by H. Peter Anvin's avatar H. Peter Anvin
Browse files

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: default avatarH. Peter Anvin <hpa@linux.intel.com>
Link: http://lkml.kernel.org/r/1336501366-28617-11-git-send-email-jarkko.sakkinen@intel.com
parent 487f50ff
Loading
Loading
Loading
Loading
+6 −4
Original line number Original line Diff line number Diff line
@@ -80,6 +80,7 @@ no_longmode:
	jmp no_longmode
	jmp no_longmode
#include "../kernel/verify_cpu.S"
#include "../kernel/verify_cpu.S"


	.section ".text32","ax"
	.code32
	.code32
	.balign 4
	.balign 4
ENTRY(startup_32)
ENTRY(startup_32)
@@ -114,6 +115,7 @@ ENTRY(startup_32)
	 */
	 */
	ljmpl	*(pa_startup_64_vector)
	ljmpl	*(pa_startup_64_vector)


	.section ".text64","ax"
	.code64
	.code64
	.balign 4
	.balign 4
ENTRY(startup_64)
ENTRY(startup_64)
@@ -123,7 +125,8 @@ ENTRY(startup_64)
	addl	%esi, %eax
	addl	%esi, %eax
	jmp	*%rax
	jmp	*%rax


	# Careful these need to be in the same 64K segment as the above;
	.section ".rodata","a"
	.balign	16
tidt:
tidt:
	.word	0			# idt limit = 0
	.word	0			# idt limit = 0
	.word	0, 0			# idt base = 0L
	.word	0, 0			# idt base = 0L
@@ -153,9 +156,8 @@ startup_64_vector:
	.word	__KERNEL_CS, 0
	.word	__KERNEL_CS, 0


	.data
	.data

	.balign 4
	.balign 4
ENTRY(trampoline_status)
GLOBAL(trampoline_status)
	.long	0
	.long	0


trampoline_stack:
trampoline_stack:
@@ -164,7 +166,7 @@ trampoline_stack_end:


	.globl	level3_ident_pgt
	.globl	level3_ident_pgt
	.globl	level3_kernel_pgt
	.globl	level3_kernel_pgt
ENTRY(trampoline_level4_pgt)
GLOBAL(trampoline_level4_pgt)
	level3_ident_pgt:	.quad	0
	level3_ident_pgt:	.quad	0
	.fill 510,8,0
	.fill 510,8,0
	level3_kernel_pgt:	.quad	0
	level3_kernel_pgt:	.quad	0