relocated, paging_enabled, and no_longmode are self-standing local functions, annotate them as such. paging_enabled is annotated as NOALIGN, since the trampoline code has to be compact. Signed-off-by: Jiri Slaby <jslaby@xxxxxxx> Cc: "H. Peter Anvin" <hpa@xxxxxxxxx> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxxxxx> Cc: x86@xxxxxxxxxx --- arch/x86/boot/compressed/head_32.S | 3 ++- arch/x86/boot/compressed/head_64.S | 9 ++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S index 37380c0d5999..7e8ab0bb6968 100644 --- a/arch/x86/boot/compressed/head_32.S +++ b/arch/x86/boot/compressed/head_32.S @@ -209,7 +209,7 @@ ENDPROC(efi32_stub_entry) #endif .text -relocated: +SYM_FUNC_START_LOCAL(relocated) /* * Clear BSS (stack is currently empty) @@ -260,6 +260,7 @@ relocated: */ xorl %ebx, %ebx jmp *%eax +SYM_FUNC_END(relocated) #ifdef CONFIG_EFI_STUB .data diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S index 6233ae35d0d9..c8ce6ffc9fe5 100644 --- a/arch/x86/boot/compressed/head_64.S +++ b/arch/x86/boot/compressed/head_64.S @@ -511,7 +511,7 @@ ENDPROC(efi64_stub_entry) #endif .text -relocated: +SYM_FUNC_START_LOCAL(relocated) /* * Clear BSS (stack is currently empty) @@ -540,6 +540,7 @@ relocated: * Jump to the decompressed kernel. */ jmp *%rax +SYM_FUNC_END(relocated) /* * Adjust the global offset table @@ -635,9 +636,10 @@ ENTRY(trampoline_32bit_src) lret .code64 -paging_enabled: +SYM_FUNC_START_LOCAL_NOALIGN(paging_enabled) /* Return from the trampoline */ jmp *%rdi +SYM_FUNC_END(paging_enabled) /* * The trampoline code has a size limit. @@ -647,11 +649,12 @@ paging_enabled: .org trampoline_32bit_src + TRAMPOLINE_32BIT_CODE_SIZE .code32 -no_longmode: +SYM_FUNC_START_LOCAL(no_longmode) /* This isn't an x86-64 CPU, so hang intentionally, we cannot continue */ 1: hlt jmp 1b +SYM_FUNC_END(no_longmode) #include "../../kernel/verify_cpu.S" -- 2.22.0