[GIT PULL 00/20] More EFI updates for v5.6

From: Ard Biesheuvel
Date: Fri Jan 03 2020 - 06:41:40 EST


Ingo, Thomas,

This is the second batch of EFI updates for v5.6. Two things are still
under discussion, so I'll probably have a few more changes for this
cycle in a week or so.

The following changes since commit 0679715e714345d273c0e1eb78078535ffc4b2a1:

efi/libstub/x86: Avoid globals to store context during mixed mode calls (2019-12-25 10:49:26 +0100)

are available in the Git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git tags/efi-next

for you to fetch changes up to d95e4feae5368a91775c4597a8f298ba84f31535:

efi/x86: avoid RWX mappings for all of DRAM (2020-01-03 11:46:15 +0100)

----------------------------------------------------------------
Second batch of EFI updates for v5.6:
- Some followup fixes for the EFI stub changes that have been queued up
already.
- Overhaul of the x86 EFI boot/runtime code, to peel off layers of pointer
casting and type mangling via variadic macros and asm wrappers that made
the code fragile and ugly.
- Increase robustness for mixed mode code, by using argmaps to annotate and
translate function prototypes that are not mixed mode safe. (Arvind)
- Add the ability to disable DMA at the root port level in the EFI stub, to
avoid booting into the kernel proper with IOMMUs in pass through and DMA
enabled (suggested by Matthew)
- Get rid of RWX mappings in the EFI memory map, where possible.

----------------------------------------------------------------
Ard Biesheuvel (17):
efi/libstub: fix boot argument handling in mixed mode entry code
efi/libstub/x86: force 'hidden' visibility for extern declarations
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()
x86/mm: fix NX bit clearing issue in kernel_map_pages_in_pgd
efi/x86: don't map the entire kernel text RW for mixed mode
efi/x86: avoid RWX mappings for all of DRAM

Arvind Sankar (2):
efi/x86: Check number of arguments to variadic functions
efi/x86: Allow translating 64-bit arguments for mixed mode calls

Matthew Garrett (1):
efi: Allow disabling PCI busmastering on bridges during boot

Documentation/admin-guide/kernel-parameters.txt | 7 +-
arch/x86/boot/compressed/eboot.c | 18 +-
arch/x86/boot/compressed/efi_thunk_64.S | 4 +-
arch/x86/boot/compressed/head_64.S | 17 +-
arch/x86/include/asm/efi.h | 169 ++++++++---
arch/x86/mm/pageattr.c | 8 +-
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 | 157 +++++++----
arch/x86/platform/efi/efi_stub_32.S | 109 ++------
arch/x86/platform/efi/efi_stub_64.S | 43 +--
arch/x86/platform/efi/efi_thunk_64.S | 121 ++------
arch/x86/platform/uv/bios_uv.c | 7 +-
drivers/firmware/efi/Kconfig | 22 ++
drivers/firmware/efi/libstub/Makefile | 2 +-
drivers/firmware/efi/libstub/efi-stub-helper.c | 20 +-
drivers/firmware/efi/libstub/pci.c | 114 ++++++++
include/linux/efi.h | 29 +-
19 files changed, 597 insertions(+), 627 deletions(-)
create mode 100644 drivers/firmware/efi/libstub/pci.c