From 8417420441607060186b883e36786dce3eea0fec Mon Sep 17 00:00:00 2001 From: milek7 Date: Sun, 27 Mar 2022 22:01:54 +0200 Subject: [PATCH] arm64: Do not misalign kernel stack. AAPCS64 requires stack to be aligned to 16 bytes. Additionally alignment might be enforced by hardware for every sp-relative access depending on configuration in SCTLR. Change-Id: Idd4756dd19386eb491d926b8a9862fa7fa48e506 Reviewed-on: https://review.haiku-os.org/c/haiku/+/5259 Reviewed-by: waddlesplash --- src/system/boot/platform/efi/arch/arm64/arch_start.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/system/boot/platform/efi/arch/arm64/arch_start.cpp b/src/system/boot/platform/efi/arch/arm64/arch_start.cpp index c3e5677f81..7251b90b68 100644 --- a/src/system/boot/platform/efi/arch/arm64/arch_start.cpp +++ b/src/system/boot/platform/efi/arch/arm64/arch_start.cpp @@ -229,7 +229,7 @@ arch_start_kernel(addr_t kernelEntry) if (arch_mmu_read_access(kernelEntry) && arch_mmu_read_access(gKernelArgs.cpu_kstack[0].start)) { // Enter the kernel! arch_enter_kernel(&gKernelArgs, kernelEntry, - gKernelArgs.cpu_kstack[0].start + gKernelArgs.cpu_kstack[0].size - 8); + gKernelArgs.cpu_kstack[0].start + gKernelArgs.cpu_kstack[0].size); } else { // _arch_exception_panic("Kernel or Stack memory not accessible\n", __LINE__); panic("Kernel or Stack memory not accessible\n");