• Ard Biesheuvel's avatar
    efi/x86: Drop two near identical versions of efi_runtime_init() · 33b85447
    Ard Biesheuvel authored
    The routines efi_runtime_init32() and efi_runtime_init64() are
    almost indistinguishable, and the only relevant difference is
    the offset in the runtime struct from where to obtain the physical
    address of the SetVirtualAddressMap() routine.
    
    However, this address is only used once, when installing the virtual
    address map that the OS will use to invoke EFI runtime services, and
    at the time of the call, we will necessarily be running with a 1:1
    mapping, and so there is no need to do the map/unmap dance here to
    retrieve the address. In fact, in the preceding changes to these users,
    we stopped using the address recorded here entirely.
    
    So let's just get rid of all this code since it no longer serves a
    purpose. While at it, tweak the logic so that we handle unsupported
    and disable EFI runtime services in the same way, and unmap the EFI
    memory map in both cases.
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Cc: Andy Lutomirski <luto@kernel.org>
    Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>
    Cc: Arvind Sankar <nivedita@alum.mit.edu>
    Cc: Matthew Garrett <mjg59@google.com>
    Cc: linux-efi@vger.kernel.org
    Link: https://lkml.kernel.org/r/20200103113953.9571-12-ardb@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    33b85447
efi.c 25.3 KB