From: Varad Gautam <varad.gautam@xxxxxxxx> UEFI test builds currently use the stack pointer configured by the UEFI implementation. Reserve stack space in .data for EFI testcases and switch %rsp to use this memory on early boot. This provides one 4K page per CPU to store its stack. Signed-off-by: Varad Gautam <varad.gautam@xxxxxxxx> Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx> --- x86/efi/crt0-efi-x86_64.S | 3 +++ x86/efi/efistart64.S | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/x86/efi/crt0-efi-x86_64.S b/x86/efi/crt0-efi-x86_64.S index eaf1656..1708ed5 100644 --- a/x86/efi/crt0-efi-x86_64.S +++ b/x86/efi/crt0-efi-x86_64.S @@ -58,6 +58,9 @@ _start: popq %rdi popq %rsi + /* Switch away from EFI stack. */ + lea stacktop(%rip), %rsp + call efi_main addq $8, %rsp diff --git a/x86/efi/efistart64.S b/x86/efi/efistart64.S index b94c5ab..3a4135e 100644 --- a/x86/efi/efistart64.S +++ b/x86/efi/efistart64.S @@ -4,7 +4,13 @@ #include "asm-generic/page.h" #include "crt0-efi-x86_64.S" + +/* Reserve stack in .data */ .data +.align PAGE_SIZE + . = . + PAGE_SIZE * MAX_TEST_CPUS +.globl stacktop +stacktop: .align PAGE_SIZE .globl ptl2 -- 2.36.1.476.g0c4daa206d-goog