Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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

authored by

Jiri Slaby and committed by
Borislav Petkov
78f44330 26ba4e57

+36 -43
+3 -5
arch/x86/realmode/rm/header.S
··· 14 14 .section ".header", "a" 15 15 16 16 .balign 16 17 - GLOBAL(real_mode_header) 17 + SYM_DATA_START(real_mode_header) 18 18 .long pa_text_start 19 19 .long pa_ro_end 20 20 /* SMP trampoline */ ··· 33 33 #ifdef CONFIG_X86_64 34 34 .long __KERNEL32_CS 35 35 #endif 36 - END(real_mode_header) 36 + SYM_DATA_END(real_mode_header) 37 37 38 38 /* End signature, used to verify integrity */ 39 39 .section ".signature","a" 40 40 .balign 4 41 - GLOBAL(end_signature) 42 - .long REALMODE_END_SIGNATURE 43 - END(end_signature) 41 + SYM_DATA(end_signature, .long REALMODE_END_SIGNATURE)
+4 -4
arch/x86/realmode/rm/reboot.S
··· 127 127 .section ".rodata", "a" 128 128 129 129 .balign 16 130 - GLOBAL(machine_real_restart_idt) 130 + SYM_DATA_START(machine_real_restart_idt) 131 131 .word 0xffff /* Length - real mode default value */ 132 132 .long 0 /* Base - real mode default value */ 133 - END(machine_real_restart_idt) 133 + SYM_DATA_END(machine_real_restart_idt) 134 134 135 135 .balign 16 136 - GLOBAL(machine_real_restart_gdt) 136 + SYM_DATA_START(machine_real_restart_gdt) 137 137 /* Self-pointer */ 138 138 .word 0xffff /* Length - real mode default value */ 139 139 .long pa_machine_real_restart_gdt ··· 153 153 * semantics we don't have to reload the segments once CR0.PE = 0. 154 154 */ 155 155 .quad GDT_ENTRY(0x0093, 0x100, 0xffff) 156 - END(machine_real_restart_gdt) 156 + SYM_DATA_END(machine_real_restart_gdt)
+6 -8
arch/x86/realmode/rm/stack.S
··· 6 6 #include <linux/linkage.h> 7 7 8 8 .data 9 - GLOBAL(HEAP) 10 - .long rm_heap 11 - GLOBAL(heap_end) 12 - .long rm_stack 9 + SYM_DATA(HEAP, .long rm_heap) 10 + SYM_DATA(heap_end, .long rm_stack) 13 11 14 12 .bss 15 13 .balign 16 16 - GLOBAL(rm_heap) 14 + SYM_DATA(rm_heap, .space 2048) 15 + 16 + SYM_DATA_START(rm_stack) 17 17 .space 2048 18 - GLOBAL(rm_stack) 19 - .space 2048 20 - GLOBAL(rm_stack_end) 18 + SYM_DATA_END_LABEL(rm_stack, SYM_L_GLOBAL, rm_stack_end)
+5 -5
arch/x86/realmode/rm/trampoline_32.S
··· 62 62 63 63 .bss 64 64 .balign 8 65 - GLOBAL(trampoline_header) 66 - tr_start: .space 4 67 - tr_gdt_pad: .space 2 68 - tr_gdt: .space 6 69 - END(trampoline_header) 65 + SYM_DATA_START(trampoline_header) 66 + SYM_DATA_LOCAL(tr_start, .space 4) 67 + SYM_DATA_LOCAL(tr_gdt_pad, .space 2) 68 + SYM_DATA_LOCAL(tr_gdt, .space 6) 69 + SYM_DATA_END(trampoline_header) 70 70 71 71 #include "trampoline_common.S"
+9 -10
arch/x86/realmode/rm/trampoline_64.S
··· 149 149 # Duplicate the global descriptor table 150 150 # so the kernel can live anywhere 151 151 .balign 16 152 - .globl tr_gdt 153 - tr_gdt: 152 + SYM_DATA_START(tr_gdt) 154 153 .short tr_gdt_end - tr_gdt - 1 # gdt limit 155 154 .long pa_tr_gdt 156 155 .short 0 157 156 .quad 0x00cf9b000000ffff # __KERNEL32_CS 158 157 .quad 0x00af9b000000ffff # __KERNEL_CS 159 158 .quad 0x00cf93000000ffff # __KERNEL_DS 160 - tr_gdt_end: 159 + SYM_DATA_END_LABEL(tr_gdt, SYM_L_LOCAL, tr_gdt_end) 161 160 162 161 .bss 163 162 .balign PAGE_SIZE 164 - GLOBAL(trampoline_pgd) .space PAGE_SIZE 163 + SYM_DATA(trampoline_pgd, .space PAGE_SIZE) 165 164 166 165 .balign 8 167 - GLOBAL(trampoline_header) 168 - tr_start: .space 8 169 - GLOBAL(tr_efer) .space 8 170 - GLOBAL(tr_cr4) .space 4 171 - GLOBAL(tr_flags) .space 4 172 - END(trampoline_header) 166 + SYM_DATA_START(trampoline_header) 167 + SYM_DATA_LOCAL(tr_start, .space 8) 168 + SYM_DATA(tr_efer, .space 8) 169 + SYM_DATA(tr_cr4, .space 4) 170 + SYM_DATA(tr_flags, .space 4) 171 + SYM_DATA_END(trampoline_header) 173 172 174 173 #include "trampoline_common.S"
+1 -1
arch/x86/realmode/rm/trampoline_common.S
··· 1 1 /* SPDX-License-Identifier: GPL-2.0 */ 2 2 .section ".rodata","a" 3 3 .balign 16 4 - tr_idt: .fill 1, 6, 0 4 + SYM_DATA_LOCAL(tr_idt, .fill 1, 6, 0)
+4 -4
arch/x86/realmode/rm/wakeup_asm.S
··· 17 17 .section ".data", "aw" 18 18 19 19 .balign 16 20 - GLOBAL(wakeup_header) 20 + SYM_DATA_START(wakeup_header) 21 21 video_mode: .short 0 /* Video mode number */ 22 22 pmode_entry: .long 0 23 23 pmode_cs: .short __KERNEL_CS ··· 31 31 realmode_flags: .long 0 32 32 real_magic: .long 0 33 33 signature: .long WAKEUP_HEADER_SIGNATURE 34 - END(wakeup_header) 34 + SYM_DATA_END(wakeup_header) 35 35 36 36 .text 37 37 .code16 ··· 152 152 */ 153 153 154 154 .balign 16 155 - GLOBAL(wakeup_gdt) 155 + SYM_DATA_START(wakeup_gdt) 156 156 .word 3*8-1 /* Self-descriptor */ 157 157 .long pa_wakeup_gdt 158 158 .word 0 ··· 164 164 .word 0xffff /* 16-bit data segment @ real_mode_base */ 165 165 .long 0x93000000 + pa_real_mode_base 166 166 .word 0x008f /* big real mode */ 167 - END(wakeup_gdt) 167 + SYM_DATA_END(wakeup_gdt) 168 168 169 169 .section ".rodata","a" 170 170 .balign 8
+4 -6
arch/x86/realmode/rmpiggy.S
··· 10 10 11 11 .balign PAGE_SIZE 12 12 13 - GLOBAL(real_mode_blob) 13 + SYM_DATA_START(real_mode_blob) 14 14 .incbin "arch/x86/realmode/rm/realmode.bin" 15 - END(real_mode_blob) 15 + SYM_DATA_END_LABEL(real_mode_blob, SYM_L_GLOBAL, real_mode_blob_end) 16 16 17 - GLOBAL(real_mode_blob_end); 18 - 19 - GLOBAL(real_mode_relocs) 17 + SYM_DATA_START(real_mode_relocs) 20 18 .incbin "arch/x86/realmode/rm/realmode.relocs" 21 - END(real_mode_relocs) 19 + SYM_DATA_END(real_mode_relocs)