Re: [PATCH] efi/libstub/arm64: Enable __efistub_global define in .data section

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 4/10/20 1:09 AM, Ard Biesheuvel wrote:
On Thu, 9 Apr 2020 at 23:44, Victor Erminpour
<victor.erminpour@xxxxxxxxxx> wrote:

Enable the __efistub_global define to place variables in the
.data section for both CONFIG_ARM and CONFIG_ARM64.

This places the EFIstub sys_table variable and other EFIstub
static variables in the .data section for both CONFIG_ARM and
CONFIG_ARM64.


What does that achieve?

Hi Ard,

Without placing these global variables in .data, I get the
following errors when booting an ARM64 EFI system:

EFI stub: ERROR: Exit boot services failed.
EFI stub: ERROR: Failed to update FDT and exit boot services


I know that the ARM64 linker script is supposed to put the
.init.bss into the .init.data section, but I don't think this
is happening for all systems.

Having it explicitly enabled for CONFIG_ARM64 worked for me.


Regards,
--Victor



Signed-off-by: Victor Erminpour <victor.erminpour@xxxxxxxxxx>
---
  drivers/firmware/efi/libstub/efistub.h | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/firmware/efi/libstub/efistub.h b/drivers/firmware/efi/libstub/efistub.h
index c244b16..59932d6 100644
--- a/drivers/firmware/efi/libstub/efistub.h
+++ b/drivers/firmware/efi/libstub/efistub.h
@@ -25,7 +25,7 @@
  #define EFI_ALLOC_ALIGN                EFI_PAGE_SIZE
  #endif

-#ifdef CONFIG_ARM
+#if defined(CONFIG_ARM) || defined(CONFIG_ARM64)
  #define __efistub_global       __section(.data)
  #else
  #define __efistub_global

--
Victor Hugo Erminpour
Principal Member of Technical Staff
Oracle America



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux