x86/efistub: Drop redundant clearing of BSS
authorArd Biesheuvel <ardb@kernel.org>
Thu, 4 Jul 2024 09:03:24 +0000 (11:03 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Mon, 8 Jul 2024 08:17:45 +0000 (10:17 +0200)
As it turns out, clearing the BSS was not the right fix for the issue
that was ultimately fixed by commit decd347c2a75 ("x86/efistub:
Reinstate soft limit for initrd loading"), and given that the Windows
EFI loader becomes very unhappy when entered with garbage in BSS, this
is one thing that x86 PC EFI implementations can be expected to get
right.

So drop it from the pure PE entrypoint. The handover protocol entrypoint
still needs this - it is used by the flaky distro bootloaders that
barely implement PE/COFF at all.

Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
drivers/firmware/efi/libstub/x86-stub.c

index a4d0164ba35e193e05155fc5aae243418908f48a..1ed94b251c58b2520a4ad69cb56ec7c6f0d9f529 100644 (file)
@@ -541,9 +541,6 @@ efi_status_t __efiapi efi_pe_entry(efi_handle_t handle,
        efi_status_t status;
        char *cmdline_ptr;
 
-       if (efi_is_native())
-               memset(_bss, 0, _ebss - _bss);
-
        efi_system_table = sys_table_arg;
 
        /* Check if we were booted by the EFI firmware */