Re: [GIT PULL 00/20] More EFI updates for v5.6
From: Ard Biesheuvel
Date: Thu Jan 09 2020 - 04:37:51 EST
On Fri, 3 Jan 2020 at 12:40, Ard Biesheuvel <ardb@xxxxxxxxxx> wrote:
>
> 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)
>
Ingo, Thomas,
I'll be submitting another PR later today or tomorrow that goes on top
of these changes. Please let me know if you would like a v2 of this PR
with the new content included, or rather keep them separate.
Thanks,
Ard.
> ----------------------------------------------------------------
> 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