This is a combined v2 followup to the v1s of efi: more fixes and general cleanups for v5.6 [0] efi/x86: clean up and simplify runtime call wrappers [1] sent out last week. I have some other changes pending regarding the mapping of EFI runtime memory with restricted permissions [2], but I will get back to those after finishing up with the changes below. Changes since v1: - Fix logic in #3 for running 64-bit kernels on 32-bit firmware when mixed mode support is not compiled in. In this case, we can still boot but we will not have access to runtime services. - Refactor the C wrappers involved in calling SetVirtualAddressMap, which were kludgy and hard to follow (#6, #7) - Incorporate review feedback from Arvind and Andy regarding the asm wrappers (#8, #9, #10), and simplify them a bit further, - Drop efi_runtime_init32/64 entirely since they turned out to be unnecessary. (#11) - Add another pair of cleanup patches for the runtime services code (#13, #14) Branch can be found here: https://git.kernel.org/pub/scm/linux/kernel/git/ardb/linux.git/log/?h=efi-more-cleanup-for-v5.6-v2 [0] https://lore.kernel.org/linux-efi/20191228152109.6301-1-ardb@xxxxxxxxxx/ [1] https://lore.kernel.org/linux-efi/20191226151407.29716-1-ardb@xxxxxxxxxx/ [2] https://lore.kernel.org/linux-efi/20191227163418.16139-1-ardb@xxxxxxxxxx/ Cc: Ingo Molnar <mingo@xxxxxxxxxx> Cc: Arvind Sankar <nivedita@xxxxxxxxxxxx> Cc: Hans de Goede <hdegoede@xxxxxxxxxx> Cc: Andy Lutomirski <luto@xxxxxxxxxx> Ard Biesheuvel (14): efi/libstub: fix boot argument handling in mixed mode entry code efi/libstub: use correct system table pointer in mixed mode efi_free() efi/x86: re-disable RT services for 32-bit kernels running on 64-bit EFI efi/x86: map the entire EFI vendor string before copying it efi/x86: avoid redundant cast of EFI firmware service pointer efi/x86: split off some old memmap handling into separate routines efi/x86: split SetVirtualAddresMap() wrappers into 32 and 64 bit versions efi/x86: simplify i386 efi_call_phys() firmware call wrapper efi/x86: simplify 64-bit EFI firmware call wrapper efi/x86: simplify mixed mode call wrapper efi/x86: drop two near identical versions of efi_runtime_init() efi/x86: clean up efi_systab_init() routine for legibility efi/x86: don't panic or BUG() on non-critical error conditions efi/x86: remove unreachable code in kexec_enter_virtual_mode() arch/x86/boot/compressed/eboot.c | 3 +- arch/x86/boot/compressed/head_64.S | 17 +- arch/x86/include/asm/efi.h | 43 +-- arch/x86/platform/efi/Makefile | 1 - arch/x86/platform/efi/efi.c | 354 +++++++------------- arch/x86/platform/efi/efi_32.c | 22 +- arch/x86/platform/efi/efi_64.c | 129 ++++--- arch/x86/platform/efi/efi_stub_32.S | 109 +----- arch/x86/platform/efi/efi_stub_64.S | 39 +-- arch/x86/platform/efi/efi_thunk_64.S | 121 ++----- arch/x86/platform/uv/bios_uv.c | 7 +- include/linux/efi.h | 23 +- 12 files changed, 288 insertions(+), 580 deletions(-) -- 2.20.1