x86/boot: Annotate data appropriately

Use the new SYM_DATA, SYM_DATA_START, and SYM_DATA_END* macros for data,
so that the data in the object file look sane:

  Value   Size Type    Bind   Vis      Ndx Name
    0000    10 OBJECT  GLOBAL DEFAULT    3 efi32_boot_gdt
    000a    10 OBJECT  LOCAL  DEFAULT    3 save_gdt
    0014     8 OBJECT  LOCAL  DEFAULT    3 func_rt_ptr
    001c    48 OBJECT  GLOBAL DEFAULT    3 efi_gdt64
    004c     0 OBJECT  LOCAL  DEFAULT    3 efi_gdt64_end

    0000    48 OBJECT  LOCAL  DEFAULT    3 gdt
    0030     0 OBJECT  LOCAL  DEFAULT    3 gdt_end
    0030     8 OBJECT  LOCAL  DEFAULT    3 efi_config
    0038    49 OBJECT  GLOBAL DEFAULT    3 efi32_config
    0069    49 OBJECT  GLOBAL DEFAULT    3 efi64_config

All have correct size and type now.

Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Allison Randal <allison@lohutok.net>
Cc: Cao jin <caoj.fnst@cn.fujitsu.com>
Cc: Enrico Weigelt <info@metux.net>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Kate Stewart <kstewart@linuxfoundation.org>
Cc: "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>
Cc: linux-arch@vger.kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Wei Huang <wei@redhat.com>
Cc: x86-ml <x86@kernel.org>
Cc: Xiaoyao Li <xiaoyao.li@linux.intel.com>
Link: https://lkml.kernel.org/r/20191011115108.12392-13-jslaby@suse.cz
This commit is contained in:
Jiri Slaby 2019-10-11 13:50:52 +02:00 committed by Borislav Petkov
parent b1bd27b9ad
commit b8c3f9b554
4 changed files with 30 additions and 30 deletions

View File

@ -176,16 +176,19 @@ ENDPROC(efi_enter32)
.data .data
.balign 8 .balign 8
.global efi32_boot_gdt SYM_DATA_START(efi32_boot_gdt)
efi32_boot_gdt: .word 0 .word 0
.quad 0 .quad 0
SYM_DATA_END(efi32_boot_gdt)
save_gdt: .word 0 SYM_DATA_START_LOCAL(save_gdt)
.quad 0 .word 0
func_rt_ptr: .quad 0 .quad 0
SYM_DATA_END(save_gdt)
.global efi_gdt64 SYM_DATA_LOCAL(func_rt_ptr, .quad 0)
efi_gdt64:
SYM_DATA_START(efi_gdt64)
.word efi_gdt64_end - efi_gdt64 .word efi_gdt64_end - efi_gdt64
.long 0 /* Filled out by user */ .long 0 /* Filled out by user */
.word 0 .word 0
@ -194,4 +197,4 @@ efi_gdt64:
.quad 0x00cf92000000ffff /* __KERNEL_DS */ .quad 0x00cf92000000ffff /* __KERNEL_DS */
.quad 0x0080890000000000 /* TS descriptor */ .quad 0x0080890000000000 /* TS descriptor */
.quad 0x0000000000000000 /* TS continued */ .quad 0x0000000000000000 /* TS continued */
efi_gdt64_end: SYM_DATA_END_LABEL(efi_gdt64, SYM_L_LOCAL, efi_gdt64_end)

View File

@ -659,11 +659,12 @@ SYM_FUNC_END(.Lno_longmode)
#include "../../kernel/verify_cpu.S" #include "../../kernel/verify_cpu.S"
.data .data
gdt64: SYM_DATA_START_LOCAL(gdt64)
.word gdt_end - gdt .word gdt_end - gdt
.quad 0 .quad 0
SYM_DATA_END(gdt64)
.balign 8 .balign 8
gdt: SYM_DATA_START_LOCAL(gdt)
.word gdt_end - gdt .word gdt_end - gdt
.long gdt .long gdt
.word 0 .word 0
@ -672,25 +673,24 @@ gdt:
.quad 0x00cf92000000ffff /* __KERNEL_DS */ .quad 0x00cf92000000ffff /* __KERNEL_DS */
.quad 0x0080890000000000 /* TS descriptor */ .quad 0x0080890000000000 /* TS descriptor */
.quad 0x0000000000000000 /* TS continued */ .quad 0x0000000000000000 /* TS continued */
gdt_end: SYM_DATA_END_LABEL(gdt, SYM_L_LOCAL, gdt_end)
#ifdef CONFIG_EFI_STUB #ifdef CONFIG_EFI_STUB
efi_config: SYM_DATA_LOCAL(efi_config, .quad 0)
.quad 0
#ifdef CONFIG_EFI_MIXED #ifdef CONFIG_EFI_MIXED
.global efi32_config SYM_DATA_START(efi32_config)
efi32_config:
.fill 5,8,0 .fill 5,8,0
.quad efi64_thunk .quad efi64_thunk
.byte 0 .byte 0
SYM_DATA_END(efi32_config)
#endif #endif
.global efi64_config SYM_DATA_START(efi64_config)
efi64_config:
.fill 5,8,0 .fill 5,8,0
.quad efi_call .quad efi_call
.byte 1 .byte 1
SYM_DATA_END(efi64_config)
#endif /* CONFIG_EFI_STUB */ #endif /* CONFIG_EFI_STUB */
/* /*
@ -698,23 +698,21 @@ efi64_config:
*/ */
.bss .bss
.balign 4 .balign 4
boot_heap: SYM_DATA_LOCAL(boot_heap, .fill BOOT_HEAP_SIZE, 1, 0)
.fill BOOT_HEAP_SIZE, 1, 0
boot_stack: SYM_DATA_START_LOCAL(boot_stack)
.fill BOOT_STACK_SIZE, 1, 0 .fill BOOT_STACK_SIZE, 1, 0
boot_stack_end: SYM_DATA_END_LABEL(boot_stack, SYM_L_LOCAL, boot_stack_end)
/* /*
* Space for page tables (not in .bss so not zeroed) * Space for page tables (not in .bss so not zeroed)
*/ */
.section ".pgtable","a",@nobits .section ".pgtable","a",@nobits
.balign 4096 .balign 4096
pgtable: SYM_DATA_LOCAL(pgtable, .fill BOOT_PGT_SIZE, 1, 0)
.fill BOOT_PGT_SIZE, 1, 0
/* /*
* The page table is going to be used instead of page table in the trampoline * The page table is going to be used instead of page table in the trampoline
* memory. * memory.
*/ */
top_pgtable: SYM_DATA_LOCAL(top_pgtable, .fill PAGE_SIZE, 1, 0)
.fill PAGE_SIZE, 1, 0

View File

@ -96,6 +96,5 @@ ENDPROC(set_sev_encryption_mask)
#ifdef CONFIG_AMD_MEM_ENCRYPT #ifdef CONFIG_AMD_MEM_ENCRYPT
.balign 8 .balign 8
GLOBAL(sme_me_mask) SYM_DATA(sme_me_mask, .quad 0)
.quad 0
#endif #endif

View File

@ -171,8 +171,8 @@ END(wakeup_gdt)
/* This is the standard real-mode IDT */ /* This is the standard real-mode IDT */
.balign 16 .balign 16
.Lwakeup_idt: SYM_DATA_START_LOCAL(.Lwakeup_idt)
.word 0xffff /* limit */ .word 0xffff /* limit */
.long 0 /* address */ .long 0 /* address */
.word 0 .word 0
END(.Lwakeup_idt) SYM_DATA_END(.Lwakeup_idt)