x86, realmode: Move bits to the proper sections in trampoline_64.S
authorH. Peter Anvin <hpa@linux.intel.com>
Tue, 8 May 2012 18:22:33 +0000 (21:22 +0300)
committerH. Peter Anvin <hpa@linux.intel.com>
Tue, 8 May 2012 18:48:03 +0000 (11:48 -0700)
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
arch/x86/realmode/rm/trampoline_64.S

index 063da00..66c58cf 100644 (file)
@@ -80,6 +80,7 @@ no_longmode:
        jmp no_longmode
 #include "../kernel/verify_cpu.S"
 
+       .section ".text32","ax"
        .code32
        .balign 4
 ENTRY(startup_32)
@@ -114,6 +115,7 @@ ENTRY(startup_32)
         */
        ljmpl   *(pa_startup_64_vector)
 
+       .section ".text64","ax"
        .code64
        .balign 4
 ENTRY(startup_64)
@@ -123,7 +125,8 @@ ENTRY(startup_64)
        addl    %esi, %eax
        jmp     *%rax
 
-       # Careful these need to be in the same 64K segment as the above;
+       .section ".rodata","a"
+       .balign 16
 tidt:
        .word   0                       # idt limit = 0
        .word   0, 0                    # idt base = 0L
@@ -153,9 +156,8 @@ startup_64_vector:
        .word   __KERNEL_CS, 0
 
        .data
-
        .balign 4
-ENTRY(trampoline_status)
+GLOBAL(trampoline_status)
        .long   0
 
 trampoline_stack:
@@ -164,7 +166,7 @@ trampoline_stack_end:
 
        .globl  level3_ident_pgt
        .globl  level3_kernel_pgt
-ENTRY(trampoline_level4_pgt)
+GLOBAL(trampoline_level4_pgt)
        level3_ident_pgt:       .quad   0
        .fill 510,8,0
        level3_kernel_pgt:      .quad   0