Re: [PATCH v8 07/28] x86/boot/compressed: annotate local functions

From: Borislav Petkov
Date: Mon Aug 19 2019 - 10:44:09 EST


On Thu, Aug 08, 2019 at 12:38:33PM +0200, Jiri Slaby wrote:
> 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"
>
> --

All can be local labels prepended with .L

--
Regards/Gruss,
Boris.

Good mailing practices for 400: avoid top-posting and trim the reply.