• Ard Biesheuvel's avatar
    efi/x86: Avoid physical KASLR on older Dell systems · 50d7cdf7
    Ard Biesheuvel authored
    River reports boot hangs with v6.6 and v6.7, and the bisect points to
    commit
    
      a1b87d54 ("x86/efistub: Avoid legacy decompressor when doing EFI boot")
    
    which moves the memory allocation and kernel decompression from the
    legacy decompressor (which executes *after* ExitBootServices()) to the
    EFI stub, using boot services for allocating the memory. The memory
    allocation succeeds but the subsequent call to decompress_kernel() never
    returns, resulting in a failed boot and a hanging system.
    
    As it turns out, this issue only occurs when physical address
    randomization (KASLR) is enabled, and given that this is a feature we
    can live without (virtual KASLR is much more important), let's disable
    the physical part of KASLR when booting on AMI UEFI firmware claiming to
    implement revision v2.0 of the specification (which was released in
    2006), as this is the version these systems advertise.
    
    Fixes: a1b87d54 ("x86/efistub: Avoid legacy decompressor when doing EFI boot")
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218173Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    50d7cdf7
x86-stub.c 24.8 KB