• Ard Biesheuvel's avatar
    x86/boot: Provide KASAN compatible aliases for string routines · c3ee82ce
    Ard Biesheuvel authored
    The KASAN subsystem wraps calls to memcpy(), memset() and memmove()
    to sanitize the arguments before invoking the actual routines, which
    have been renamed to __memcpy(), __memset() and __memmove(),
    respectively. When CONFIG_KASAN is enabled for the kernel build but
    KASAN code generation is disabled for the compilation unit (which is
    needed for things like the EFI stub or the decompressor), the string
    routines are just #define'd to their __ prefixed names so that they
    are simply invoked directly.
    
    This does however rely on those __ prefixed names to exist in the
    symbol namespace, which is not currently the case for the x86
    decompressor, which may lead to errors like
    
      drivers/firmware/efi/libstub/tpm.o: In function `efi_retrieve_tpm2_eventlog':
      tpm.c:(.text+0x2a8): undefined reference to `__memcpy'
    
    So let's expose the __ prefixed symbols in the decompressor when
    KASAN is enabled.
    Signed-off-by: default avatarArd Biesheuvel <ard.biesheuvel@linaro.org>
    Acked-by: default avatarJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
    Cc: Andrey Konovalov <andreyknvl@google.com>
    Cc: Borislav Petkov <bp@alien8.de>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Matthew Garrett <matthewgarrett@google.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: linux-efi@vger.kernel.org
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    c3ee82ce
string.c 1.91 KB