Commit 78f44330 authored by Jiri Slaby's avatar Jiri Slaby Committed by Borislav Petkov

x86/asm/realmode: Use SYM_DATA_* instead of GLOBAL

GLOBAL had several meanings and is going away. Convert all the data
marked using GLOBAL to use SYM_DATA_START or SYM_DATA instead.

Note that SYM_DATA_END_LABEL is used to generate tr_gdt_end too.
Signed-off-by: default avatarJiri Slaby <jslaby@suse.cz>
Signed-off-by: default avatarBorislav Petkov <bp@suse.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: linux-arch@vger.kernel.org
Cc: Pingfan Liu <kernelfans@gmail.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: x86-ml <x86@kernel.org>
Link: https://lkml.kernel.org/r/20191011115108.12392-19-jslaby@suse.cz
parent 26ba4e57
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
.section ".header", "a" .section ".header", "a"
.balign 16 .balign 16
GLOBAL(real_mode_header) SYM_DATA_START(real_mode_header)
.long pa_text_start .long pa_text_start
.long pa_ro_end .long pa_ro_end
/* SMP trampoline */ /* SMP trampoline */
...@@ -33,11 +33,9 @@ GLOBAL(real_mode_header) ...@@ -33,11 +33,9 @@ GLOBAL(real_mode_header)
#ifdef CONFIG_X86_64 #ifdef CONFIG_X86_64
.long __KERNEL32_CS .long __KERNEL32_CS
#endif #endif
END(real_mode_header) SYM_DATA_END(real_mode_header)
/* End signature, used to verify integrity */ /* End signature, used to verify integrity */
.section ".signature","a" .section ".signature","a"
.balign 4 .balign 4
GLOBAL(end_signature) SYM_DATA(end_signature, .long REALMODE_END_SIGNATURE)
.long REALMODE_END_SIGNATURE
END(end_signature)
...@@ -127,13 +127,13 @@ bios: ...@@ -127,13 +127,13 @@ bios:
.section ".rodata", "a" .section ".rodata", "a"
.balign 16 .balign 16
GLOBAL(machine_real_restart_idt) SYM_DATA_START(machine_real_restart_idt)
.word 0xffff /* Length - real mode default value */ .word 0xffff /* Length - real mode default value */
.long 0 /* Base - real mode default value */ .long 0 /* Base - real mode default value */
END(machine_real_restart_idt) SYM_DATA_END(machine_real_restart_idt)
.balign 16 .balign 16
GLOBAL(machine_real_restart_gdt) SYM_DATA_START(machine_real_restart_gdt)
/* Self-pointer */ /* Self-pointer */
.word 0xffff /* Length - real mode default value */ .word 0xffff /* Length - real mode default value */
.long pa_machine_real_restart_gdt .long pa_machine_real_restart_gdt
...@@ -153,4 +153,4 @@ GLOBAL(machine_real_restart_gdt) ...@@ -153,4 +153,4 @@ GLOBAL(machine_real_restart_gdt)
* semantics we don't have to reload the segments once CR0.PE = 0. * semantics we don't have to reload the segments once CR0.PE = 0.
*/ */
.quad GDT_ENTRY(0x0093, 0x100, 0xffff) .quad GDT_ENTRY(0x0093, 0x100, 0xffff)
END(machine_real_restart_gdt) SYM_DATA_END(machine_real_restart_gdt)
...@@ -6,15 +6,13 @@ ...@@ -6,15 +6,13 @@
#include <linux/linkage.h> #include <linux/linkage.h>
.data .data
GLOBAL(HEAP) SYM_DATA(HEAP, .long rm_heap)
.long rm_heap SYM_DATA(heap_end, .long rm_stack)
GLOBAL(heap_end)
.long rm_stack
.bss .bss
.balign 16 .balign 16
GLOBAL(rm_heap) SYM_DATA(rm_heap, .space 2048)
.space 2048
GLOBAL(rm_stack) SYM_DATA_START(rm_stack)
.space 2048 .space 2048
GLOBAL(rm_stack_end) SYM_DATA_END_LABEL(rm_stack, SYM_L_GLOBAL, rm_stack_end)
...@@ -62,10 +62,10 @@ ENTRY(startup_32) # note: also used from wakeup_asm.S ...@@ -62,10 +62,10 @@ ENTRY(startup_32) # note: also used from wakeup_asm.S
.bss .bss
.balign 8 .balign 8
GLOBAL(trampoline_header) SYM_DATA_START(trampoline_header)
tr_start: .space 4 SYM_DATA_LOCAL(tr_start, .space 4)
tr_gdt_pad: .space 2 SYM_DATA_LOCAL(tr_gdt_pad, .space 2)
tr_gdt: .space 6 SYM_DATA_LOCAL(tr_gdt, .space 6)
END(trampoline_header) SYM_DATA_END(trampoline_header)
#include "trampoline_common.S" #include "trampoline_common.S"
...@@ -149,26 +149,25 @@ ENTRY(startup_64) ...@@ -149,26 +149,25 @@ ENTRY(startup_64)
# Duplicate the global descriptor table # Duplicate the global descriptor table
# so the kernel can live anywhere # so the kernel can live anywhere
.balign 16 .balign 16
.globl tr_gdt SYM_DATA_START(tr_gdt)
tr_gdt:
.short tr_gdt_end - tr_gdt - 1 # gdt limit .short tr_gdt_end - tr_gdt - 1 # gdt limit
.long pa_tr_gdt .long pa_tr_gdt
.short 0 .short 0
.quad 0x00cf9b000000ffff # __KERNEL32_CS .quad 0x00cf9b000000ffff # __KERNEL32_CS
.quad 0x00af9b000000ffff # __KERNEL_CS .quad 0x00af9b000000ffff # __KERNEL_CS
.quad 0x00cf93000000ffff # __KERNEL_DS .quad 0x00cf93000000ffff # __KERNEL_DS
tr_gdt_end: SYM_DATA_END_LABEL(tr_gdt, SYM_L_LOCAL, tr_gdt_end)
.bss .bss
.balign PAGE_SIZE .balign PAGE_SIZE
GLOBAL(trampoline_pgd) .space PAGE_SIZE SYM_DATA(trampoline_pgd, .space PAGE_SIZE)
.balign 8 .balign 8
GLOBAL(trampoline_header) SYM_DATA_START(trampoline_header)
tr_start: .space 8 SYM_DATA_LOCAL(tr_start, .space 8)
GLOBAL(tr_efer) .space 8 SYM_DATA(tr_efer, .space 8)
GLOBAL(tr_cr4) .space 4 SYM_DATA(tr_cr4, .space 4)
GLOBAL(tr_flags) .space 4 SYM_DATA(tr_flags, .space 4)
END(trampoline_header) SYM_DATA_END(trampoline_header)
#include "trampoline_common.S" #include "trampoline_common.S"
/* SPDX-License-Identifier: GPL-2.0 */ /* SPDX-License-Identifier: GPL-2.0 */
.section ".rodata","a" .section ".rodata","a"
.balign 16 .balign 16
tr_idt: .fill 1, 6, 0 SYM_DATA_LOCAL(tr_idt, .fill 1, 6, 0)
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
.section ".data", "aw" .section ".data", "aw"
.balign 16 .balign 16
GLOBAL(wakeup_header) SYM_DATA_START(wakeup_header)
video_mode: .short 0 /* Video mode number */ video_mode: .short 0 /* Video mode number */
pmode_entry: .long 0 pmode_entry: .long 0
pmode_cs: .short __KERNEL_CS pmode_cs: .short __KERNEL_CS
...@@ -31,7 +31,7 @@ GLOBAL(wakeup_header) ...@@ -31,7 +31,7 @@ GLOBAL(wakeup_header)
realmode_flags: .long 0 realmode_flags: .long 0
real_magic: .long 0 real_magic: .long 0
signature: .long WAKEUP_HEADER_SIGNATURE signature: .long WAKEUP_HEADER_SIGNATURE
END(wakeup_header) SYM_DATA_END(wakeup_header)
.text .text
.code16 .code16
...@@ -152,7 +152,7 @@ bogus_real_magic: ...@@ -152,7 +152,7 @@ bogus_real_magic:
*/ */
.balign 16 .balign 16
GLOBAL(wakeup_gdt) SYM_DATA_START(wakeup_gdt)
.word 3*8-1 /* Self-descriptor */ .word 3*8-1 /* Self-descriptor */
.long pa_wakeup_gdt .long pa_wakeup_gdt
.word 0 .word 0
...@@ -164,7 +164,7 @@ GLOBAL(wakeup_gdt) ...@@ -164,7 +164,7 @@ GLOBAL(wakeup_gdt)
.word 0xffff /* 16-bit data segment @ real_mode_base */ .word 0xffff /* 16-bit data segment @ real_mode_base */
.long 0x93000000 + pa_real_mode_base .long 0x93000000 + pa_real_mode_base
.word 0x008f /* big real mode */ .word 0x008f /* big real mode */
END(wakeup_gdt) SYM_DATA_END(wakeup_gdt)
.section ".rodata","a" .section ".rodata","a"
.balign 8 .balign 8
......
...@@ -10,12 +10,10 @@ ...@@ -10,12 +10,10 @@
.balign PAGE_SIZE .balign PAGE_SIZE
GLOBAL(real_mode_blob) SYM_DATA_START(real_mode_blob)
.incbin "arch/x86/realmode/rm/realmode.bin" .incbin "arch/x86/realmode/rm/realmode.bin"
END(real_mode_blob) SYM_DATA_END_LABEL(real_mode_blob, SYM_L_GLOBAL, real_mode_blob_end)
GLOBAL(real_mode_blob_end); SYM_DATA_START(real_mode_relocs)
GLOBAL(real_mode_relocs)
.incbin "arch/x86/realmode/rm/realmode.relocs" .incbin "arch/x86/realmode/rm/realmode.relocs"
END(real_mode_relocs) SYM_DATA_END(real_mode_relocs)
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment