• Ard Biesheuvel's avatar
    arm64/efi: add missing call to early_ioremap_reset() · 0e63ea48
    Ard Biesheuvel authored
    The early ioremap support introduced by patch bf4b558e
    ("arm64: add early_ioremap support") failed to add a call to
    early_ioremap_reset() at an appropriate time. Without this call,
    invocations of early_ioremap etc. that are done too late will go
    unnoticed and may cause corruption.
    
    This is exactly what happened when the first user of this feature
    was added in patch f84d0275 ("arm64: add EFI runtime services").
    The early mapping of the EFI memory map is unmapped during an early
    initcall, at which time the early ioremap support is long gone.
    
    Fix by adding the missing call to early_ioremap_reset() to
    setup_arch(), and move the offending early_memunmap() to right after
    the point where the early mapping of the EFI memory map is last used.
    
    Fixes: f84d0275 ("arm64: add EFI runtime services")
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarLeif Lindholm <leif.lindholm@linaro.org>
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Signed-off-by: default avatarWill Deacon <will.deacon@arm.com>
    0e63ea48
efi.c 11.4 KB