On Thu, Mar 06, 2025 at 04:59:16PM +0100, Ard Biesheuvel wrote: > From: Ard Biesheuvel <ardb@xxxxxxxxxx> > > The 5-level paging code parses the command line to look for the 'no5lvl' > string, and does so very early, before sanitize_boot_params() has been > called and has been given the opportunity to wipe bogus data from the > fields in boot_params that are not covered by struct setup_header, and > are therefore supposed to be initialized to zero by the bootloader. > > This triggers an early boot crash when using syslinux-efi to boot a > recent kernel built with CONFIG_X86_5LEVEL=y and CONFIG_EFI_STUB=n, as > the 0xff padding that now fills the unused PE/COFF header is copied into > boot_params by the bootloader, and interpreted as the top half of the > command line pointer. > > Fix this by sanitizing the boot_params before use. Note that there is no > harm in calling this more than once; subsequent invocations are able to > spot that the boot_params have already been cleaned up. > > Cc: <stable@xxxxxxxxxxxxxxx> # v6.1+ > Cc: "H. Peter Anvin" <hpa@xxxxxxxxx> > Cc: "Kirill A. Shutemov" <kirill.shutemov@xxxxxxxxxxxxxxx> > Cc: Ulrich Gemkow <ulrich.gemkow@xxxxxxxxxxxxxxxxxxxx> > Closes: https://lore.kernel.org/all/202503041549.35913.ulrich.gemkow@xxxxxxxxxxxxxxxxxxxx > Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx> Acked-by: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> -- Kiryl Shutsemau / Kirill A. Shutemov