efi: more fixes and general cleanups for v5.6
Get series with b4
b4 am [email protected]Versions newest first · linked by author and title
- v2 Latest14 patches 0 repliesNew
- v17 patches 0 repliesSuperseded
Changes in v2 from the cover letter
- 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)
Patches in v2 No applies recorded yet
| # | Subject and files | Size | Replies | Applied |
|---|---|---|---|---|
| 1/14 | efi/libstub: fix boot argument handling in mixed mode entry codearch/ | +10 | 0 replies | |
| 2/14 | efi/libstub: use correct system table pointer in mixed mode efi_free()arch/ | +2 | 0 replies | |
| 3/14 | efi/x86: re-disable RT services for 32-bit kernels running on 64-bit EFIarch/ | +2 | 0 replies | |
| 4/14 | efi/x86: map the entire EFI vendor string before copying itarch/ | +7 | 0 replies | |
| 5/14 | efi/x86: avoid redundant cast of EFI firmware service pointerarch/ include/ | +4 | 0 replies | |
| 6/14 | efi/x86: split off some old memmap handling into separate routinesarch/ | +22 | 0 replies | |
| 7/14 | efi/x86: split SetVirtualAddresMap() wrappers into 32 and 64 bit versionsarch/ arch/ arch/ +1 more | +55 | 0 replies | |
| 8/14 | efi/x86: simplify i386 efi_call_phys() firmware call wrapperarch/ arch/ arch/ | +20 | 0 replies | |
| 9/14 | efi/x86: simplify 64-bit EFI firmware call wrapperarch/ arch/ arch/ +1 more | +12 | 0 replies | |
| 10/14 | efi/x86: simplify mixed mode call wrapperarch/ arch/ arch/ +1 more | +67 | 0 replies | |
| 11/14 | efi/x86: drop two near identical versions of efi_runtime_init()arch/ include/ | +5 | 0 replies | |
| 12/14 | efi/x86: clean up efi_systab_init() routine for legibilityarch/ | +82 | 0 replies | |
| 13/14 | efi/x86: don't panic or BUG() on non-critical error conditionsarch/ arch/ | +19 | 0 replies | |
| 14/14 | efi/x86: remove unreachable code in kexec_enter_virtual_mode()arch/ | +0 | 0 replies |
Reviews trailers per patch
No Reviewed-by, Acked-by or Tested-by trailers for v2 yet.
Cover letter [PATCH v2 00/14] efi: more fixes and general cleanups for v5.6
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/[email protected]/
[1] https://lore.kernel.org/linux-efi/[email protected]/
[2] https://lore.kernel.org/linux-efi/[email protected]/
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(-)
Signature · 1 line
2.20.1