Re: [PATCH 3/5] efi/x86: Add kernel preferred address to PE header

From: Ard Biesheuvel
Date: Tue Mar 03 2020 - 14:11:48 EST


On Mon, 2 Mar 2020 at 00:05, Arvind Sankar <nivedita@xxxxxxxxxxxx> wrote:
>
> Store the kernel's link address as ImageBase in the PE header. Note that
> the PE specification requires the ImageBase to be 64k aligned. The
> preferred address should almost always satisfy that, except for 32-bit
> kernel if the configuration has been customized.
>
> Signed-off-by: Arvind Sankar <nivedita@xxxxxxxxxxxx>
> ---
> arch/x86/boot/header.S | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
> index 4ee25e28996f..0d8d2cb28fd9 100644
> --- a/arch/x86/boot/header.S
> +++ b/arch/x86/boot/header.S
> @@ -138,10 +138,12 @@ optional_header:
> #endif
>
> extra_header_fields:
> + # PE specification requires ImageBase to be 64k-aligned
> + .set ImageBase, (LOAD_PHYSICAL_ADDR+0xffff) & ~0xffff

Could you call this image_base please, and put some spaces around the +

> #ifdef CONFIG_X86_32
> - .long 0 # ImageBase
> + .long ImageBase # ImageBase
> #else
> - .quad 0 # ImageBase
> + .quad ImageBase # ImageBase
> #endif
> .long 0x20 # SectionAlignment
> .long 0x20 # FileAlignment
> --
> 2.24.1
>