On Sat, Sep 10, 2022 at 10:11:47AM +0200, Ard Biesheuvel wrote: > 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: Ard Biesheuvel <ardb@xxxxxxxxxx> > --- > arch/arm64/kernel/image-vars.h | 13 --------- Acked-by: Catalin Marinas <catalin.marinas@xxxxxxx>