This is a follow-up to [0].
Move arch_accept_memory(), which is only called by the EFI stub and
never by the decompressor on a non-EFI boot, into the EFI stub, and
avoid relying directly on decompressor APIs such as error().
Instead, call tdx_panic() on a failure to accept memory in a TDX guest.
This makes the decompressor's implementation of panic() obsolete, and
allows it to be removed. This is a prerequisite for dropping the
implementation of snprintf() from the EFI stub entirely, which is what
the series containing [0] implements.
Changes since v1 [1]:
- Add missing stub for early_is_sevsnp_guest() when SEV support is
compiled out but TDX support is built in.
- Use native_cpuid() in EFI stub code so it does not get paravirtualized
- Set __NO_FORTIFY when including tdx-shared.c so the decompressor/stub
version does not get instrumented. Needed for the memcpy() in
tdx_panic().
[0] http://lore.kernel.org/r/20260909115530.1924665-13-ardb+git@google.com
[1] https://lore.kernel.org/all/20260914183745.37538-5-ardb@kernel.org/
Cc: Kiryl Shutsemau (Meta) <kas@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Edgecombe, Rick P <rick.p.edgecombe@intel.com>
Ard Biesheuvel (3):
x86/tdx: Share tdx_panic() with the EFI stub
x86/boot: Move unaccepted memory handling out of the decompressor
x86/boot: Drop unused implementation of panic()
arch/x86/boot/compressed/error.c | 19 ---------
arch/x86/boot/compressed/error.h | 1 -
arch/x86/boot/compressed/mem.c | 42 --------------------
arch/x86/boot/compressed/sev.h | 2 -
arch/x86/boot/compressed/tdx-shared.c | 2 +
arch/x86/coco/tdx/tdx-shared.c | 31 +++++++++++++++
arch/x86/coco/tdx/tdx.c | 35 ----------------
arch/x86/include/asm/sev.h | 2 +
arch/x86/include/asm/shared/tdx.h | 1 +
drivers/firmware/efi/libstub/x86-stub.c | 39 ++++++++++++++++++
10 files changed, 75 insertions(+), 99 deletions(-)
--
2.53.0