[PATCH v3 2/2] efi: Support booting with kexec handover (KHO)
Ard Biesheuvel
ardb at kernel.org
Thu Sep 4 00:19:21 PDT 2025
On Sat, 23 Aug 2025 at 23:47, Ard Biesheuvel <ardb at kernel.org> wrote:
>
> (cc Ilias)
>
> Note to akpm: please drop this series for now.
>
> On Fri, 22 Aug 2025 at 04:00, Evangelos Petrongonas <epetron at amazon.de> wrote:
> >
> > When KHO (Kexec HandOver) is enabled, it sets up scratch memory regions
> > early during device tree scanning. After kexec, the new kernel
> > exclusively uses this region for memory allocations during boot up to
> > the initialization of the page allocator
> >
> > However, when booting with EFI, EFI's reserve_regions() uses
> > memblock_remove(0, PHYS_ADDR_MAX) to clear all memory regions before
> > rebuilding them from EFI data. This destroys KHO scratch regions and
> > their flags, thus causing a kernel panic, as there are no scratch
> > memory regions.
> >
> > Instead of wholesale removal, iterate through memory regions and only
> > remove non-KHO ones. This preserves KHO scratch regions, which are
> > good known memory, while still allowing EFI to rebuild its memory map.
> >
> > Acked-by: Mike Rapoport (Microsoft) <rppt at kernel.org>
> > Signed-off-by: Evangelos Petrongonas <epetron at amazon.de>
> > ---
> > Changes in v3:
> > - Improve the code comments, by stating that the scratch regions are
> > good known memory
> >
> > Changes in v2:
> > - Replace the for loop with for_each_mem_region
> > - Fix comment indentation
> > - Amend commit message to specify that scratch regions
> > are known good regions
> >
> > drivers/firmware/efi/efi-init.c | 29 +++++++++++++++++++++++++----
> > 1 file changed, 25 insertions(+), 4 deletions(-)
> >
>
> I'd rather drop the memblock_remove() entirely if possible. Could we
> get some insight into whether memblocks are generally already
> populated at this point during the boot?
>
>
Ping?
More information about the kexec
mailing list