• Andrey Ryabinin's avatar
    x86, efi, kasan: #undef memset/memcpy/memmove per arch · 769a8089
    Andrey Ryabinin authored
    In not-instrumented code KASAN replaces instrumented memset/memcpy/memmove
    with not-instrumented analogues __memset/__memcpy/__memove.
    
    However, on x86 the EFI stub is not linked with the kernel.  It uses
    not-instrumented mem*() functions from arch/x86/boot/compressed/string.c
    
    So we don't replace them with __mem*() variants in EFI stub.
    
    On ARM64 the EFI stub is linked with the kernel, so we should replace
    mem*() functions with __mem*(), because the EFI stub runs before KASAN
    sets up early shadow.
    
    So let's move these #undef mem* into arch's asm/efi.h which is also
    included by the EFI stub.
    
    Also, this will fix the warning in 32-bit build reported by kbuild test
    robot:
    
    	efi-stub-helper.c:599:2: warning: implicit declaration of function 'memcpy'
    
    [akpm@linux-foundation.org: use 80 cols in comment]
    Signed-off-by: default avatarAndrey Ryabinin <ryabinin.a.a@gmail.com>
    Reported-by: default avatarFengguang Wu <fengguang.wu@gmail.com>
    Cc: Will Deacon <will.deacon@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Matt Fleming <matt.fleming@intel.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: "H. Peter Anvin" <hpa@zytor.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
    769a8089
efistub.h 1.47 KB