• Ard Biesheuvel's avatar
    efi/x86: Simplify i386 efi_call_phys() firmware call wrapper · a46d6740
    Ard Biesheuvel authored
    The variadic efi_call_phys() wrapper that exists on i386 was
    originally created to call into any EFI firmware runtime service,
    but in practice, we only use it once, to call SetVirtualAddressMap()
    during early boot.
    The flexibility provided by the variadic nature also makes it
    type unsafe, and makes the assembler code more complicated than
    needed, since it has to deal with an unknown number of arguments
    living on the stack.
    
    So clean this up, by renaming the helper to efi_call_svam(), and
    dropping the unneeded complexity. Let's also drop the reference
    to the efi_phys struct and grab the address from the EFI system
    table directly.
    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-9-ardb@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    a46d6740
efi_stub_32.S 961 Bytes