diff options
author | Zbigniew Bodek <zbb@FreeBSD.org> | 2015-07-17 14:08:08 +0000 |
---|---|---|
committer | Zbigniew Bodek <zbb@FreeBSD.org> | 2015-07-17 14:08:08 +0000 |
commit | ab89029bd0fa6844e9f90676ea489204f35c102b (patch) | |
tree | 2d986a1c559f14986d75ccc04b5c84f2171f1409 | |
parent | d5dfc8ad004a6adf04ad9e7bd49fa2e353dec053 (diff) | |
download | src-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.S | 3 |
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 |