From: Ard Biesheuvel <ardb@xxxxxxxxxx> Hi Linus, Please pull the EFI updates below. Details are in the tag. Note that, even though the commit dates may suggest otherwise, most of these changes have been in linux-next for at least a week or so before the merge window opened, with the exception of the GCC 15 and kexec/x86 fixes (which are tagged for stable). There were some last minute tweaks to James's efivarfs patches that necessitated a partial rebase (implementing a suggestion by Al Viro to combine struct inode and struct efivar_entry into a single object) The following changes since commit 78d4f34e2115b517bcbfe7ec0d018bbbb6f9b0b8: Linux 6.13-rc3 (2024-12-15 15:58:23 -0800) are available in the Git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git tags/efi-next-for-v6.14 for you to fetch changes up to 64b45dd46e154ee7641d7e0457f3fa266e57179f: x86/efi: skip memattr table on kexec boot (2025-01-23 09:58:43 +0100) ---------------------------------------------------------------- EFI updates for v6.14 - Increase the headroom in the EFI memory map allocation created by the EFI stub. This is needed because event callbacks called during ExitBootServices() may cause fragmentation, and reallocation is not allowed after that. - Drop obsolete UGA graphics code and switch to a more ergonomic API to traverse handle buffers. Simplify some error paths using a __free() helper while at it. - Fix some W=1 warnings when CONFIG_EFI=n - Rely on the dentry cache to keep track of the contents of the efivarfs filesystem, rather than using a separate linked list. - Improve and extend efivarfs test cases. - Synchronize efivarfs with underlying variable store on resume from hibernation - this is needed because the firmware itself or another OS running on the same machine may have modified it. - Fix x86 EFI stub build with GCC 15. - Fix kexec/x86 false positive warning in EFI memory attributes table sanity check. ---------------------------------------------------------------- Ard Biesheuvel (8): x86/efistub: Drop long obsolete UGA support efi/libstub: Use C99-style for loop to traverse handle buffer efi/libstub: Simplify GOP handling code efi/libstub: Refactor and clean up GOP resolution picker code efi/libstub: Simplify PCI I/O handle buffer traversal efi/libstub: Use cleanup helpers for freeing copies of the memory map efi/libstub: Use __free() helper for pool deallocations Merge branch 'efivarfs' into next Dave Young (1): x86/efi: skip memattr table on kexec boot Hamza Mahfooz (1): efi/libstub: Bump up EFI_MMAP_NR_SLACK_SLOTS to 32 James Bottomley (12): efivarfs: remove unused efi_variable.Attributes and efivar_entry.kobj efivarfs: add helper to convert from UC16 name and GUID to utf8 name efivarfs: make variable_is_present use dcache lookup efivarfs: prevent setting of zero size on the inodes in the cache selftests/efivarfs: add check for disallowing file truncation efivarfs: move variable lifetime management into the inodes efivarfs: remove unused efivarfs_list efivarfs: fix error on write to new variable leaving remnants selftests/efivarfs: fix tests for failed write removal selftests/efivarfs: add concurrent update tests efivarfs: abstract initial variable creation routine efivarfs: add variable resync after hibernation Nathan Chancellor (1): efi: libstub: Use '-std=gnu11' to fix build with GCC 15 Randy Dunlap (1): efi: sysfb_efi: fix W=1 warnings when EFI is not set arch/x86/include/asm/efi.h | 3 + arch/x86/platform/efi/efi.c | 10 - arch/x86/platform/efi/quirks.c | 5 + drivers/firmware/efi/efi.c | 3 - drivers/firmware/efi/libstub/Makefile | 2 +- drivers/firmware/efi/libstub/efi-stub-helper.c | 9 +- drivers/firmware/efi/libstub/efi-stub.c | 49 ++-- drivers/firmware/efi/libstub/efistub.h | 20 +- drivers/firmware/efi/libstub/gop.c | 323 ++++++++++--------------- drivers/firmware/efi/libstub/kaslr.c | 4 +- drivers/firmware/efi/libstub/mem.c | 20 +- drivers/firmware/efi/libstub/pci.c | 34 +-- drivers/firmware/efi/libstub/randomalloc.c | 4 +- drivers/firmware/efi/libstub/relocate.c | 10 +- drivers/firmware/efi/libstub/x86-stub.c | 164 ++----------- drivers/firmware/efi/sysfb_efi.c | 2 +- fs/efivarfs/file.c | 59 ++++- fs/efivarfs/inode.c | 58 ++--- fs/efivarfs/internal.h | 27 ++- fs/efivarfs/super.c | 275 +++++++++++++++++---- fs/efivarfs/vars.c | 181 ++++---------- include/linux/efi.h | 4 - tools/testing/selftests/efivarfs/efivarfs.sh | 168 ++++++++++++- 23 files changed, 734 insertions(+), 700 deletions(-)