• Ard Biesheuvel's avatar
    efi/libstub/x86: Avoid thunking for native firmware calls · afc4cc71
    Ard Biesheuvel authored
    We use special wrapper routines to invoke firmware services in the
    native case as well as the mixed mode case. For mixed mode, the need
    is obvious, but for the native cases, we can simply rely on the
    compiler to generate the indirect call, given that GCC now has
    support for the MS calling convention (and has had it for quite some
    time now). Note that on i386, the decompressor and the EFI stub are not
    built with -mregparm=3 like the rest of the i386 kernel, so we can
    safely allow the compiler to emit the indirect calls here as well.
    
    So drop all the wrappers and indirection, and switch to either native
    calls, or direct calls into the thunk routine for mixed mode.
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Cc: Arvind Sankar <nivedita@alum.mit.edu>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: James Morse <james.morse@arm.com>
    Cc: Matt Fleming <matt@codeblueprint.co.uk>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-efi@vger.kernel.org
    Link: https://lkml.kernel.org/r/20191224151025.32482-14-ardb@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    afc4cc71
head_64.S 16.6 KB