aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm64/kernel
diff options
context:
space:
mode:
authorArd Biesheuvel <ard.biesheuvel@linaro.org>2015-03-10 10:00:03 -0400
committerWill Deacon <will.deacon@arm.com>2015-03-19 15:46:01 -0400
commitb1c98297fe0c6e2899ede03fc3b831f36e19fb76 (patch)
tree4ef6aa4aab154aecb9fc55ae0c13388569d3133d /arch/arm64/kernel
parenta871d354f795c4960543fb44c9b59af63367d6cf (diff)
arm64: use PC-relative reference for secondary_holding_pen_release
Replace the confusing virtual/physical address arithmetic with a simple PC-relative reference. Tested-by: Mark Rutland <mark.rutland@arm.com> Reviewed-by: Mark Rutland <mark.rutland@arm.com> Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org> Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'arch/arm64/kernel')
-rw-r--r--arch/arm64/kernel/head.S9
1 files changed, 1 insertions, 8 deletions
diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S
index 42ff10967dcc..818213186dac 100644
--- a/arch/arm64/kernel/head.S
+++ b/arch/arm64/kernel/head.S
@@ -564,10 +564,6 @@ ENTRY(__boot_cpu_mode)
564 .popsection 564 .popsection
565 565
566#ifdef CONFIG_SMP 566#ifdef CONFIG_SMP
567 .align 3
5681: .quad .
569 .quad secondary_holding_pen_release
570
571 /* 567 /*
572 * This provides a "holding pen" for platforms to hold all secondary 568 * This provides a "holding pen" for platforms to hold all secondary
573 * cores are held until we're ready for them to initialise. 569 * cores are held until we're ready for them to initialise.
@@ -579,10 +575,7 @@ ENTRY(secondary_holding_pen)
579 mrs x0, mpidr_el1 575 mrs x0, mpidr_el1
580 ldr x1, =MPIDR_HWID_BITMASK 576 ldr x1, =MPIDR_HWID_BITMASK
581 and x0, x0, x1 577 and x0, x0, x1
582 adr x1, 1b 578 adr_l x3, secondary_holding_pen_release
583 ldp x2, x3, [x1]
584 sub x1, x1, x2
585 add x3, x3, x1
586pen: ldr x4, [x3] 579pen: ldr x4, [x3]
587 cmp x4, x0 580 cmp x4, x0
588 b.eq secondary_startup 581 b.eq secondary_startup