From: Patrick Rudolph Date: Mon, 15 Dec 2025 08:16:39 +0000 (+0100) Subject: x86: cpu: Fix crash on FTRACE enabled builds X-Git-Tag: v2026.04-rc2~28 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a8d982e1f1726254ef27bbdf362f98954ee3feb7;p=thirdparty%2Fu-boot.git x86: cpu: Fix crash on FTRACE enabled builds When compiled with FTRACE=1 U-boot will crash as %rdi is clobbered in board_init_f_alloc_reserve() and board_init_f_init_reserve() will memset the .text segment instead of the global_data struct. According to the System V AMD64 ABI %rdi is not preserved and the existing code only worked as board_init_f_alloc_reserve() was small enough to not use %rdi. Fix that by always passing the correct argument to board_init_f_init_reserve(). TEST=Can boot on qemu-q35 with FTRACE=1 enabled during build. Signed-off-by: Patrick Rudolph --- diff --git a/arch/x86/cpu/start64.S b/arch/x86/cpu/start64.S index 78e894d2a21..968a2929d0b 100644 --- a/arch/x86/cpu/start64.S +++ b/arch/x86/cpu/start64.S @@ -16,7 +16,9 @@ _start: /* Set up memory using the existing stack */ mov %rsp, %rdi call board_init_f_alloc_reserve + mov %rax, %rsp + mov %rsp, %rdi call board_init_f_init_reserve