mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-28 14:44:10 +08:00
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: Jiri Slaby <jslaby@suse.cz> Signed-off-by: Borislav 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
This commit is contained in:
parent
26ba4e5738
commit
78f44330d8
@ -14,7 +14,7 @@
|
||||
.section ".header", "a"
|
||||
|
||||
.balign 16
|
||||
GLOBAL(real_mode_header)
|
||||
SYM_DATA_START(real_mode_header)
|
||||
.long pa_text_start
|
||||
.long pa_ro_end
|
||||
/* SMP trampoline */
|
||||
@ -33,11 +33,9 @@ GLOBAL(real_mode_header)
|
||||
#ifdef CONFIG_X86_64
|
||||
.long __KERNEL32_CS
|
||||
#endif
|
||||
END(real_mode_header)
|
||||
SYM_DATA_END(real_mode_header)
|
||||
|
||||
/* End signature, used to verify integrity */
|
||||
.section ".signature","a"
|
||||
.balign 4
|
||||
GLOBAL(end_signature)
|
||||
.long REALMODE_END_SIGNATURE
|
||||
END(end_signature)
|
||||
SYM_DATA(end_signature, .long REALMODE_END_SIGNATURE)
|
||||
|
@ -127,13 +127,13 @@ bios:
|
||||
.section ".rodata", "a"
|
||||
|
||||
.balign 16
|
||||
GLOBAL(machine_real_restart_idt)
|
||||
SYM_DATA_START(machine_real_restart_idt)
|
||||
.word 0xffff /* Length - 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
|
||||
GLOBAL(machine_real_restart_gdt)
|
||||
SYM_DATA_START(machine_real_restart_gdt)
|
||||
/* Self-pointer */
|
||||
.word 0xffff /* Length - real mode default value */
|
||||
.long pa_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.
|
||||
*/
|
||||
.quad GDT_ENTRY(0x0093, 0x100, 0xffff)
|
||||
END(machine_real_restart_gdt)
|
||||
SYM_DATA_END(machine_real_restart_gdt)
|
||||
|
@ -6,15 +6,13 @@
|
||||
#include <linux/linkage.h>
|
||||
|
||||
.data
|
||||
GLOBAL(HEAP)
|
||||
.long rm_heap
|
||||
GLOBAL(heap_end)
|
||||
.long rm_stack
|
||||
SYM_DATA(HEAP, .long rm_heap)
|
||||
SYM_DATA(heap_end, .long rm_stack)
|
||||
|
||||
.bss
|
||||
.balign 16
|
||||
GLOBAL(rm_heap)
|
||||
SYM_DATA(rm_heap, .space 2048)
|
||||
|
||||
SYM_DATA_START(rm_stack)
|
||||
.space 2048
|
||||
GLOBAL(rm_stack)
|
||||
.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
|
||||
|
||||
.bss
|
||||
.balign 8
|
||||
GLOBAL(trampoline_header)
|
||||
tr_start: .space 4
|
||||
tr_gdt_pad: .space 2
|
||||
tr_gdt: .space 6
|
||||
END(trampoline_header)
|
||||
SYM_DATA_START(trampoline_header)
|
||||
SYM_DATA_LOCAL(tr_start, .space 4)
|
||||
SYM_DATA_LOCAL(tr_gdt_pad, .space 2)
|
||||
SYM_DATA_LOCAL(tr_gdt, .space 6)
|
||||
SYM_DATA_END(trampoline_header)
|
||||
|
||||
#include "trampoline_common.S"
|
||||
|
@ -149,26 +149,25 @@ ENTRY(startup_64)
|
||||
# Duplicate the global descriptor table
|
||||
# so the kernel can live anywhere
|
||||
.balign 16
|
||||
.globl tr_gdt
|
||||
tr_gdt:
|
||||
SYM_DATA_START(tr_gdt)
|
||||
.short tr_gdt_end - tr_gdt - 1 # gdt limit
|
||||
.long pa_tr_gdt
|
||||
.short 0
|
||||
.quad 0x00cf9b000000ffff # __KERNEL32_CS
|
||||
.quad 0x00af9b000000ffff # __KERNEL_CS
|
||||
.quad 0x00cf93000000ffff # __KERNEL_DS
|
||||
tr_gdt_end:
|
||||
SYM_DATA_END_LABEL(tr_gdt, SYM_L_LOCAL, tr_gdt_end)
|
||||
|
||||
.bss
|
||||
.balign PAGE_SIZE
|
||||
GLOBAL(trampoline_pgd) .space PAGE_SIZE
|
||||
SYM_DATA(trampoline_pgd, .space PAGE_SIZE)
|
||||
|
||||
.balign 8
|
||||
GLOBAL(trampoline_header)
|
||||
tr_start: .space 8
|
||||
GLOBAL(tr_efer) .space 8
|
||||
GLOBAL(tr_cr4) .space 4
|
||||
GLOBAL(tr_flags) .space 4
|
||||
END(trampoline_header)
|
||||
SYM_DATA_START(trampoline_header)
|
||||
SYM_DATA_LOCAL(tr_start, .space 8)
|
||||
SYM_DATA(tr_efer, .space 8)
|
||||
SYM_DATA(tr_cr4, .space 4)
|
||||
SYM_DATA(tr_flags, .space 4)
|
||||
SYM_DATA_END(trampoline_header)
|
||||
|
||||
#include "trampoline_common.S"
|
||||
|
@ -1,4 +1,4 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
.section ".rodata","a"
|
||||
.balign 16
|
||||
tr_idt: .fill 1, 6, 0
|
||||
SYM_DATA_LOCAL(tr_idt, .fill 1, 6, 0)
|
||||
|
@ -17,7 +17,7 @@
|
||||
.section ".data", "aw"
|
||||
|
||||
.balign 16
|
||||
GLOBAL(wakeup_header)
|
||||
SYM_DATA_START(wakeup_header)
|
||||
video_mode: .short 0 /* Video mode number */
|
||||
pmode_entry: .long 0
|
||||
pmode_cs: .short __KERNEL_CS
|
||||
@ -31,7 +31,7 @@ GLOBAL(wakeup_header)
|
||||
realmode_flags: .long 0
|
||||
real_magic: .long 0
|
||||
signature: .long WAKEUP_HEADER_SIGNATURE
|
||||
END(wakeup_header)
|
||||
SYM_DATA_END(wakeup_header)
|
||||
|
||||
.text
|
||||
.code16
|
||||
@ -152,7 +152,7 @@ bogus_real_magic:
|
||||
*/
|
||||
|
||||
.balign 16
|
||||
GLOBAL(wakeup_gdt)
|
||||
SYM_DATA_START(wakeup_gdt)
|
||||
.word 3*8-1 /* Self-descriptor */
|
||||
.long pa_wakeup_gdt
|
||||
.word 0
|
||||
@ -164,7 +164,7 @@ GLOBAL(wakeup_gdt)
|
||||
.word 0xffff /* 16-bit data segment @ real_mode_base */
|
||||
.long 0x93000000 + pa_real_mode_base
|
||||
.word 0x008f /* big real mode */
|
||||
END(wakeup_gdt)
|
||||
SYM_DATA_END(wakeup_gdt)
|
||||
|
||||
.section ".rodata","a"
|
||||
.balign 8
|
||||
|
@ -10,12 +10,10 @@
|
||||
|
||||
.balign PAGE_SIZE
|
||||
|
||||
GLOBAL(real_mode_blob)
|
||||
SYM_DATA_START(real_mode_blob)
|
||||
.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);
|
||||
|
||||
GLOBAL(real_mode_relocs)
|
||||
SYM_DATA_START(real_mode_relocs)
|
||||
.incbin "arch/x86/realmode/rm/realmode.relocs"
|
||||
END(real_mode_relocs)
|
||||
SYM_DATA_END(real_mode_relocs)
|
||||
|
Loading…
Reference in New Issue
Block a user