• A
    efi/libstub: use EFI provided memcpy/memset routines · 88c26d7d
    Ard Biesheuvel 提交于
    LoongArch inclusion
    category: feature
    bugzilla: https://gitee.com/openeuler/kernel/issues/I5OHOB
    
    --------------------------------
    
    The stub is used in different execution environments, but on arm64,
    RISC-V and LoongArch, we still use the core kernel's implementation of
    memcpy and memset, as they are just a branch instruction away, and can
    generally be reused even from code such as the EFI stub that runs in a
    completely different address space.
    
    KAsan complicates this slightly, resulting in the need for some hacks to
    expose the uninstrumented, __ prefixed versions as the normal ones, as
    the latter are instrumented to include the KAsan checks, which only work
    in the core kernel.
    
    Unfortunately, #define'ing memcpy to __memcpy when building C code does
    not guarantee that no explicit memcpy() calls will be emitted. And with
    the upcoming zboot support, which consists of a separate binary which
    therefore needs its own implementation of memcpy/memset anyway, it's
    better to provide one explicitly instead of linking to the existing one.
    
    Given that EFI exposes implementations of memmove() and memset() via the
    boot services table, let's wire those up in the appropriate way, and
    drop the references to the core kernel ones.
    Signed-off-by: NArd Biesheuvel <ardb@kernel.org>
    Signed-off-by: NHuacai Chen <chenhuacai@loongson.cn>
    88c26d7d
intrinsics.c 713 字节