Commit b8c3f9b5 authored by Jiri Slaby's avatar Jiri Slaby Committed by Borislav Petkov
Browse files

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: default avatarJiri Slaby <jslaby@suse.cz>
Signed-off-by: default avatarBorislav 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
parent b1bd27b9
Loading
Loading
Loading
Loading
+12 −9
Original line number Diff line number Diff line
@@ -176,16 +176,19 @@ ENDPROC(efi_enter32)

	.data
	.balign	8
	.global	efi32_boot_gdt
efi32_boot_gdt:	.word	0
SYM_DATA_START(efi32_boot_gdt)
	.word	0
	.quad	0
SYM_DATA_END(efi32_boot_gdt)

save_gdt:	.word	0
SYM_DATA_START_LOCAL(save_gdt)
	.word	0
	.quad	0
func_rt_ptr:	.quad	0
SYM_DATA_END(save_gdt)

SYM_DATA_LOCAL(func_rt_ptr, .quad 0)

	.global efi_gdt64
efi_gdt64:
SYM_DATA_START(efi_gdt64)
	.word	efi_gdt64_end - efi_gdt64
	.long	0			/* Filled out by user */
	.word	0
@@ -194,4 +197,4 @@ efi_gdt64:
	.quad	0x00cf92000000ffff	/* __KERNEL_DS */
	.quad	0x0080890000000000	/* TS descriptor */
	.quad   0x0000000000000000	/* TS continued */
efi_gdt64_end:
SYM_DATA_END_LABEL(efi_gdt64, SYM_L_LOCAL, efi_gdt64_end)
+15 −17
Original line number Diff line number Diff line
@@ -659,11 +659,12 @@ SYM_FUNC_END(.Lno_longmode)
#include "../../kernel/verify_cpu.S"

	.data
gdt64:
SYM_DATA_START_LOCAL(gdt64)
	.word	gdt_end - gdt
	.quad   0
SYM_DATA_END(gdt64)
	.balign	8
gdt:
SYM_DATA_START_LOCAL(gdt)
	.word	gdt_end - gdt
	.long	gdt
	.word	0
@@ -672,25 +673,24 @@ gdt:
	.quad	0x00cf92000000ffff	/* __KERNEL_DS */
	.quad	0x0080890000000000	/* TS descriptor */
	.quad   0x0000000000000000	/* TS continued */
gdt_end:
SYM_DATA_END_LABEL(gdt, SYM_L_LOCAL, gdt_end)

#ifdef CONFIG_EFI_STUB
efi_config:
	.quad	0
SYM_DATA_LOCAL(efi_config, .quad 0)

#ifdef CONFIG_EFI_MIXED
	.global efi32_config
efi32_config:
SYM_DATA_START(efi32_config)
	.fill	5,8,0
	.quad	efi64_thunk
	.byte	0
SYM_DATA_END(efi32_config)
#endif

	.global efi64_config
efi64_config:
SYM_DATA_START(efi64_config)
	.fill	5,8,0
	.quad	efi_call
	.byte	1
SYM_DATA_END(efi64_config)
#endif /* CONFIG_EFI_STUB */

/*
@@ -698,23 +698,21 @@ efi64_config:
 */
	.bss
	.balign 4
boot_heap:
	.fill BOOT_HEAP_SIZE, 1, 0
boot_stack:
SYM_DATA_LOCAL(boot_heap,	.fill BOOT_HEAP_SIZE, 1, 0)

SYM_DATA_START_LOCAL(boot_stack)
	.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)
 */
	.section ".pgtable","a",@nobits
	.balign 4096
pgtable:
	.fill BOOT_PGT_SIZE, 1, 0
SYM_DATA_LOCAL(pgtable,		.fill BOOT_PGT_SIZE, 1, 0)

/*
 * The page table is going to be used instead of page table in the trampoline
 * memory.
 */
top_pgtable:
	.fill PAGE_SIZE, 1, 0
SYM_DATA_LOCAL(top_pgtable,	.fill PAGE_SIZE, 1, 0)
+1 −2
Original line number Diff line number Diff line
@@ -96,6 +96,5 @@ ENDPROC(set_sev_encryption_mask)

#ifdef CONFIG_AMD_MEM_ENCRYPT
	.balign	8
GLOBAL(sme_me_mask)
	.quad	0
SYM_DATA(sme_me_mask, .quad 0)
#endif
+2 −2
Original line number Diff line number Diff line
@@ -171,8 +171,8 @@ END(wakeup_gdt)

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