Re: [PATCH 1/3] x86/tdx: Share tdx_panic() with the EFI stub
From: Borislav Petkov
Date: Mon Sep 14 2026 - 23:12:12 EST
On Mon, Sep 14, 2026 at 08:37:47PM +0200, Ard Biesheuvel wrote:
> Move the implementation of tdx_panic() into the source file that is
> shared with the decompressor and the EFI stub.
>
> Use memcpy() and strnlen() instead of strtomem_pad(), as the latter does
> not exist in the early boot code.
>
> Note that __tdx_hypercall() may call __tdx_hypercall_failed() if the
> hypercall returns with an error (while it should never return to begin
> with). __tdx_hypercall_failed() calls the decompressor's error()
> routine, which prints a message and then loops forever.
>
> When called from the EFI stub, this error() call may attempt to use port
> I/O to the default serial port rather than the TDX hypercalls which the
> decompressor uses normally to print diagnostics to the console, but this
> is fine: given that this situation only occurs after a catastrophic
> error, and a subsequent spurious return from tdx_panic(), whether
> error() uses port I/O or not is rather moot at that point, as long as it
> never returns.
>
> Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx>
> ---
> arch/x86/coco/tdx/tdx-shared.c | 35 ++++++++++++++++++++
> arch/x86/coco/tdx/tdx.c | 35 --------------------
> arch/x86/include/asm/shared/tdx.h | 1 +
> 3 files changed, 36 insertions(+), 35 deletions(-)
Nah, that doesn't work:
ld: arch/x86/boot/compressed/tdx-shared.o: in function `tdx_panic':
tdx-shared.c:(.text+0x2a3): undefined reference to `__fortify_panic'
ld: tdx-shared.c:(.text+0x2b2): undefined reference to `__fortify_panic'
ld: arch/x86/boot/compressed/vmlinux: hidden symbol `__SCK__WARN_trap' isn't defined
ld: final link failed: bad value
make[3]: *** [arch/x86/boot/compressed/Makefile:117: arch/x86/boot/compressed/vmlinux] Error 1
make[2]: *** [arch/x86/boot/Makefile:96: arch/x86/boot/compressed/vmlinux] Error 2
make[1]: *** [arch/x86/Makefile:304: bzImage] Error 2
make: *** [Makefile:248: __sub-make] Error 2
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette