From: Evangelos Petrongonas <epetron@amazon.de>
To: Ard Biesheuvel <ardb@kernel.org>, Mike Rapoport <rppt@kernel.org>
Cc: Evangelos Petrongonas <epetron@amazon.de>,
Alexander Graf <graf@amazon.com>,
Changyuan Lyu <changyuanl@google.com>,
Andrew Morton <akpm@linux-foundation.org>,
Baoquan He <bhe@redhat.com>, <kexec@lists.infradead.org>,
<linux-mm@kvack.org>, <linux-efi@vger.kernel.org>,
<linux-kernel@vger.kernel.org>, <nh-open-source@amazon.com>
Subject: [PATCH v3 0/2] efi: Fix EFI boot with kexec handover (KHO)
Date: Thu, 21 Aug 2025 17:58:58 +0000 [thread overview]
Message-ID: <cover.1755721529.git.epetron@amazon.de> (raw)
This patch series fixes a kernel panic that occurs when booting with
both EFI and KHO (Kexec HandOver) enabled.
The issue arises because EFI's `reserve_regions()` clears all memory
regions with `memblock_remove(0, PHYS_ADDR_MAX)` before rebuilding them
from EFI data. This destroys KHO scratch regions that were set up early
during device tree scanning, causing a panic as the kernel has no valid
memory regions for early allocations.
The first patch introduces `is_kho_boot()` to allow early boot
components to reliably detect if the kernel was booted via KHO-enabled
kexec. The existing `kho_is_enabled()` only checks the command line and
doesn't verify if an actual KHO FDT was passed.
The second patch modifies EFI's `reserve_regions()` to selectively
remove only non-KHO memory regions when KHO is active, preserving the
critical scratch regions while still allowing EFI to rebuild its memory
map.
The patchset was developed/tested on arm64.
Main Changes in v3 (smaller changes can be found in individual patches):
- Condition is_kho_boot only on the existence of a KHO FDT
- Add Reviewed-by/Acked-by
Main Changes in v2:
- Introduce is_kho_boot()
- Replace manual loop with for_each_mem_region macro
Evangelos Petrongonas (2):
kexec: introduce is_kho_boot()
efi: Support booting with kexec handover (KHO)
drivers/firmware/efi/efi-init.c | 29 +++++++++++++++++++++++++----
include/linux/kexec_handover.h | 6 ++++++
kernel/kexec_handover.c | 20 ++++++++++++++++++++
3 files changed, 51 insertions(+), 4 deletions(-)
--
2.47.3
Amazon Web Services Development Center Germany GmbH
Tamara-Danz-Str. 13
10243 Berlin
Geschaeftsfuehrung: Christian Schlaeger, Jonathan Weiss
Eingetragen am Amtsgericht Charlottenburg unter HRB 257764 B
Sitz: Berlin
Ust-ID: DE 365 538 597
next reply other threads:[~2025-08-21 23:16 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-21 17:58 Evangelos Petrongonas [this message]
2025-08-21 17:58 ` [PATCH v3 1/2] kexec: introduce is_kho_boot() Evangelos Petrongonas
2025-09-09 12:13 ` Pratyush Yadav
2025-08-21 17:59 ` [PATCH v3 2/2] efi: Support booting with kexec handover (KHO) Evangelos Petrongonas
2025-08-23 21:47 ` Ard Biesheuvel
2025-09-04 7:19 ` Ard Biesheuvel
2025-09-04 9:34 ` Evangelos Petrongonas
2025-09-04 9:39 ` Ard Biesheuvel
2025-09-04 12:57 ` Evangelos Petrongonas
2025-09-08 5:50 ` Ard Biesheuvel
2025-09-09 12:17 ` Pratyush Yadav
2025-08-21 20:58 ` [PATCH v3 0/2] efi: Fix EFI boot " Andrew Morton
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1755721529.git.epetron@amazon.de \
--to=epetron@amazon.de \
--cc=akpm@linux-foundation.org \
--cc=ardb@kernel.org \
--cc=bhe@redhat.com \
--cc=changyuanl@google.com \
--cc=graf@amazon.com \
--cc=kexec@lists.infradead.org \
--cc=linux-efi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nh-open-source@amazon.com \
--cc=rppt@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.