Re: [PATCH v5 3/8] efi/libstub: use EFI provided memcpy/memset routines

From: Catalin Marinas
Date: Tue Sep 20 2022 - 05:54:38 EST


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>