linux-bl808/arch/x86/boot/compressed
Arvind Sankar 41d90b0c11 efi/x86: Setup stack correctly for efi_pe_entry
Commit

  17054f492d ("efi/x86: Implement mixed mode boot without the handover protocol")

introduced a new entry point for the EFI stub to be booted in mixed mode
on 32-bit firmware.

When entered via efi32_pe_entry, control is first transferred to
startup_32 to setup for the switch to long mode, and then the EFI stub
proper is entered via efi_pe_entry. efi_pe_entry is an MS ABI function,
and the ABI requires 32 bytes of shadow stack space to be allocated by
the caller, as well as the stack being aligned to 8 mod 16 on entry.

Allocate 40 bytes on the stack before switching to 64-bit mode when
calling efi_pe_entry to account for this.

For robustness, explicitly align boot_stack_end to 16 bytes. It is
currently implicitly aligned since .bss is cacheline-size aligned,
head_64.o is the first object file with a .bss section, and the heap and
boot sizes are aligned.

Fixes: 17054f492d ("efi/x86: Implement mixed mode boot without the handover protocol")
Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Link: https://lore.kernel.org/r/20200617131957.2507632-1-nivedita@alum.mit.edu
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
2020-06-17 15:28:58 +02:00
..
.gitignore .gitignore: add SPDX License Identifier 2020-03-25 11:50:48 +01:00
acpi.c x86/boot: Fix -Wint-to-pointer-cast build warning 2020-05-04 15:22:16 +02:00
cmdline.c
cpuflags.c
early_serial_console.c
efi_thunk_64.S efi/x86: Drop the special GDT for the EFI thunk 2020-05-24 00:25:15 +02:00
error.c
error.h
head_32.S x86/boot: Correct relocation destination on old linkers 2020-05-19 14:11:22 +02:00
head_64.S efi/x86: Setup stack correctly for efi_pe_entry 2020-06-17 15:28:58 +02:00
kaslr.c
kaslr_64.c mm: reorder includes after introduction of linux/pgtable.h 2020-06-09 09:39:13 -07:00
kernel_info.S
Makefile Linux 5.7-rc1 2020-04-13 09:44:39 +02:00
mem_encrypt.S
misc.c
misc.h x86/boot/compressed: Fix debug_puthex() parameter type 2020-03-28 12:14:26 +01:00
mkpiggy.c
pgtable.h
pgtable_64.c
string.c
vmlinux.lds.S Misc dependency fixes, plus a documentation update about memory protection keys support. 2020-06-01 13:45:59 -07:00