diff options
Diffstat (limited to 'drivers/firmware/efi/libstub/efi-stub-entry.c')
| -rw-r--r-- | drivers/firmware/efi/libstub/efi-stub-entry.c | 11 | 
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/firmware/efi/libstub/efi-stub-entry.c b/drivers/firmware/efi/libstub/efi-stub-entry.c index 5245c4f031c0..cc4dcaea67fa 100644 --- a/drivers/firmware/efi/libstub/efi-stub-entry.c +++ b/drivers/firmware/efi/libstub/efi-stub-entry.c @@ -5,6 +5,15 @@  #include "efistub.h" +static unsigned long screen_info_offset; + +struct screen_info *alloc_screen_info(void) +{ +	if (IS_ENABLED(CONFIG_ARM)) +		return __alloc_screen_info(); +	return (void *)&screen_info + screen_info_offset; +} +  /*   * EFI entry point for the generic EFI stub used by ARM, arm64, RISC-V and   * LoongArch. This is the entrypoint that is described in the PE/COFF header @@ -56,6 +65,8 @@ efi_status_t __efiapi efi_pe_entry(efi_handle_t handle,  		return status;  	} +	screen_info_offset = image_addr - (unsigned long)image->image_base; +  	status = efi_stub_common(handle, image, image_addr, cmdline_ptr);  	efi_free(image_size, image_addr);  |