aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Bodek <zbb@FreeBSD.org>2015-07-17 14:08:08 +0000
committerZbigniew Bodek <zbb@FreeBSD.org>2015-07-17 14:08:08 +0000
commitab89029bd0fa6844e9f90676ea489204f35c102b (patch)
tree2d986a1c559f14986d75ccc04b5c84f2171f1409
parentd5dfc8ad004a6adf04ad9e7bd49fa2e353dec053 (diff)
downloadsrc-ab89029bd0fa6844e9f90676ea489204f35c102b.tar.gz
src-ab89029bd0fa6844e9f90676ea489204f35c102b.zip
Fix secondary stacks calculation on ARM64
Secondary stack calculation is modified to provide stack_top = secondary_stacks + (cpu_id) * PAGE_SIZE * KSTACK_PAGES because on ARM64 the stack grows to lower memory addresses. Obtained from: Semihalf Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D3107
Notes
Notes: svn path=/head/; revision=285654
-rw-r--r--sys/arm64/arm64/locore.S3
1 files changed, 1 insertions, 2 deletions
diff --git a/sys/arm64/arm64/locore.S b/sys/arm64/arm64/locore.S
index d5580bee8c35..f7d7fe946e48 100644
--- a/sys/arm64/arm64/locore.S
+++ b/sys/arm64/arm64/locore.S
@@ -179,8 +179,7 @@ ENTRY(mpentry)
mp_virtdone:
ldr x4, =secondary_stacks
mov x5, #(PAGE_SIZE * KSTACK_PAGES)
- sub x1, x0, #1
- mul x5, x1, x5
+ mul x5, x0, x5
add sp, x4, x5
b init_secondary