Commit db772413 authored by Ard Biesheuvel's avatar Ard Biesheuvel

x86/boot: efistub: Assign global boot_params variable

Now that the x86 EFI stub calls into some APIs exposed by the
decompressor (e.g., kaslr_get_random_long()), it is necessary to ensure
that the global boot_params variable is set correctly before doing so.

Note that the decompressor and the kernel proper carry conflicting
declarations for the global variable 'boot_params' so refer to it via an
alias to work around this.
Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent 0d3ad191
...@@ -849,6 +849,8 @@ void __noreturn efi_stub_entry(efi_handle_t handle, ...@@ -849,6 +849,8 @@ void __noreturn efi_stub_entry(efi_handle_t handle,
unsigned long kernel_entry; unsigned long kernel_entry;
efi_status_t status; efi_status_t status;
boot_params_pointer = boot_params;
efi_system_table = sys_table_arg; efi_system_table = sys_table_arg;
/* Check if we were booted by the EFI firmware */ /* Check if we were booted by the EFI firmware */
if (efi_system_table->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE) if (efi_system_table->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE)
......
...@@ -2,6 +2,8 @@ ...@@ -2,6 +2,8 @@
#include <linux/efi.h> #include <linux/efi.h>
extern struct boot_params *boot_params_pointer asm("boot_params");
extern void trampoline_32bit_src(void *, bool); extern void trampoline_32bit_src(void *, bool);
extern const u16 trampoline_ljmp_imm_offset; extern const u16 trampoline_ljmp_imm_offset;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment