Commit db772413 authored by Ard Biesheuvel's avatar Ard Biesheuvel
Browse files

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
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -849,6 +849,8 @@ void __noreturn efi_stub_entry(efi_handle_t handle,
	unsigned long kernel_entry;
	efi_status_t status;

	boot_params_pointer = boot_params;

	efi_system_table = sys_table_arg;
	/* Check if we were booted by the EFI firmware */
	if (efi_system_table->hdr.signature != EFI_SYSTEM_TABLE_SIGNATURE)
+2 −0
Original line number Diff line number Diff line
@@ -2,6 +2,8 @@

#include <linux/efi.h>

extern struct boot_params *boot_params_pointer asm("boot_params");

extern void trampoline_32bit_src(void *, bool);
extern const u16 trampoline_ljmp_imm_offset;