• Mark Salter's avatar
    efi/arm64: Fix fdt-related memory reservation · 0ceac9e0
    Mark Salter authored
    Commit 86c8b27a:
     "arm64: ignore DT memreserve entries when booting in UEFI mode
    
    prevents early_init_fdt_scan_reserved_mem() from being called for
    arm64 kernels booting via UEFI. This was done because the kernel
    will use the UEFI memory map to determine reserved memory regions.
    That approach has problems in that early_init_fdt_scan_reserved_mem()
    also reserves the FDT itself and any node-specific reserved memory.
    By chance of some kernel configs, the FDT may be overwritten before
    it can be unflattened and the kernel will fail to boot. More subtle
    problems will result if the FDT has node specific reserved memory
    which is not really reserved.
    
    This patch has the UEFI stub remove the memory reserve map entries
    from the FDT as it does with the memory nodes. This allows
    early_init_fdt_scan_reserved_mem() to be called unconditionally
    so that the other needed reservations are made.
    Signed-off-by: default avatarMark Salter <msalter@redhat.com>
    Acked-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Acked-by: default avatarMark Rutland <mark.rutland@arm.com>
    Signed-off-by: default avatarMatt Fleming <matt.fleming@intel.com>
    0ceac9e0
init.c 8.93 KB