Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1715407

[PATCH 09/14] arm: efi: remove pointless dummy .reloc section

From Ard Biesheuvel <ard.biesheuvel@linaro.org>
Newsgroups linux.kernel
Subject [PATCH 09/14] arm: efi: remove pointless dummy .reloc section
Date 2017-08-18 22:00 +0200
Message-ID <ufVB0-89n-21@gated-at.bofh.it> (permalink)
References <ufVB0-89n-3@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


The kernel's EFI PE/COFF header contains a dummy .reloc section, and
an explanatory comment that claims that this is required for the EFI
application loader to accept the Image as a relocatable image (i.e.,
one that can be loaded at any offset and fixed up in place)

This was inherited from the x86 implementation, which has elaborate host
tooling to mangle the PE/COFF header post-link time, and which populates
the .reloc section with a single dummy base relocation. On ARM, no such
tooling exists, and the .reloc section remains empty, and is never even
exposed via the BaseRelocationTable directory entry, which is where the
PE/COFF loader looks for it.

The PE/COFF spec is unclear about relocatable images that do not require
any fixups, but the EDK2 implementation, which is the de facto reference
for PE/COFF in the UEFI space, clearly does not care, and explicitly
mentions (in a comment) that relocatable images with no base relocations
are perfectly fine, as long as they don't have the RELOCS_STRIPPED
attribute set (which is not the case for our PE/COFF image)

So simply remove the .reloc section altogether.

Cc: Matt Fleming <matt@codeblueprint.co.uk>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
---
 arch/arm/boot/compressed/efi-header.S | 18 +-----------------
 1 file changed, 1 insertion(+), 17 deletions(-)

diff --git a/arch/arm/boot/compressed/efi-header.S b/arch/arm/boot/compressed/efi-header.S
index 4169b900d9d4..309d6198d335 100644
--- a/arch/arm/boot/compressed/efi-header.S
+++ b/arch/arm/boot/compressed/efi-header.S
@@ -41,7 +41,7 @@ pe_header:
 
 coff_header:
 		.short	0x01c2			@ ARM or Thumb
-		.short	2			@ nr_sections
+		.short	1			@ nr_sections
 		.long	0 			@ TimeDateStamp
 		.long	0			@ PointerToSymbolTable
 		.long	0			@ NumberOfSymbols
@@ -96,22 +96,6 @@ extra_header_fields:
 		.quad	0			@ BaseRelocationTable
 
 section_table:
-		@
-		@ The EFI application loader requires a relocation section
-		@ because EFI applications must be relocatable. This is a
-		@ dummy section as far as we are concerned.
-		@
-		.ascii	".reloc\0\0"
-		.long	0			@ VirtualSize
-		.long	0			@ VirtualAddress
-		.long	0			@ SizeOfRawData
-		.long	0			@ PointerToRawData
-		.long	0			@ PointerToRelocations
-		.long	0			@ PointerToLineNumbers
-		.short	0			@ NumberOfRelocations
-		.short	0			@ NumberOfLineNumbers
-		.long	0x42000040		@ Characteristics
-
 		.ascii	".text\0\0\0"
 		.long	_end - __efi_start	@ VirtualSize
 		.long	__efi_start		@ VirtualAddress
-- 
2.11.0

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[GIT PULL 00/14] EFI changes for v4.14 Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
  [PATCH 03/14] efi/libstub: arm64: force 'hidden' visibility for section markers Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] efi/libstub/arm64: Force 'hidden' visibility for  section markers tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 05/14] efi: arm/arm64: Add missing assignment of efi.config_table Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] efi/arm/arm64: Add missing assignment of  efi.config_table tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 01/14] efi: arm: Don't mark ACPI reclaim memory as MEMBLOCK_NOMAP Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] efi/arm: Don't mark ACPI reclaim memory as  MEMBLOCK_NOMAP tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 06/14] efi/reboot: Fall back to original power-off method if EFI_RESET_SHUTDOWN returns Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] efi/reboot: Fall back to original power-off method  if EFI_RESET_SHUTDOWN returns tip-bot for Hans de Goede <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 04/14] efi/libstub: arm64: set -fpie when building the EFI stub Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] efi/libstub/arm64: Set -fpie when building the EFI  stub tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 09/14] arm: efi: remove pointless dummy .reloc section Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] arm/efi: Remove pointless dummy .reloc section tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 07/14] drivers/fbdev: efifb: allow BAR to be moved instead of claiming it Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] drivers/fbdev/efifb: Allow BAR to be moved instead  of claiming it tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 11/14] arm: efi: split zImage code and data into separate PE/COFF sections Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] arm/efi: Split zImage code and data into separate  PE/COFF sections tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 02/14] efi/libstub: arm64: use hidden attribute for struct screen_info reference Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] efi/libstub/arm64: Use hidden attribute for struct  screen_info reference tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 12/14] firmware: dcdbas: constify attribute_group structures. Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] firmware/dcdbas: Constify attribute_group structures tip-bot for Arvind Yadav <tipbot@zytor.com> - 2017-08-21 11:40 +0200
  [PATCH 13/14] firmware: efi: constify attribute_group structures. Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] firmware/efi: Constify attribute_group structures tip-bot for Arvind Yadav <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 14/14] firmware: efi: esrt: constify attribute_group structures. Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] firmware/efi/esrt: Constify attribute_group  structures tip-bot for Arvind Yadav <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 10/14] arm: efi: replace open coded constants with symbolic ones Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] arm/efi: Replace open coded constants with symbolic  ones tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  [PATCH 08/14] arm: efi: remove forbidden values from the PE/COFF header Ard Biesheuvel <ard.biesheuvel@linaro.org> - 2017-08-18 22:00 +0200
    [tip:efi/core] arm/efi: Remove forbidden values from the PE/COFF  header tip-bot for Ard Biesheuvel <tipbot@zytor.com> - 2017-08-21 11:30 +0200
  Re: [GIT PULL 00/14] EFI changes for v4.14 Ingo Molnar <mingo@kernel.org> - 2017-08-21 11:40 +0200

csiph-web