• Ard Biesheuvel's avatar
    efi/libstub: Distinguish between native/mixed not 32/64 bit · f958efe9
    Ard Biesheuvel authored
    Currently, we support mixed mode by casting all boot time firmware
    calls to 64-bit explicitly on native 64-bit systems, and to 32-bit
    on 32-bit systems or 64-bit systems running with 32-bit firmware.
    
    Due to this explicit awareness of the bitness in the code, we do a
    lot of casting even on generic code that is shared with other
    architectures, where mixed mode does not even exist. This casting
    leads to loss of coverage of type checking by the compiler, which
    we should try to avoid.
    
    So instead of distinguishing between 32-bit vs 64-bit, distinguish
    between native vs mixed, and limit all the nasty casting and
    pointer mangling to the code that actually deals with 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-10-ardb@kernel.orgSigned-off-by: default avatarIngo Molnar <mingo@kernel.org>
    f958efe9
efi.h 7.86 KB