This replaces a couple of open coded calculations to obtain the
physical address of a far symbol with calls to the new adr_l etc
macros.

Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
---
 arch/arm/mach-shmobile/headsmp.S | 14 ++++----------
 1 file changed, 4 insertions(+), 10 deletions(-)

diff --git a/arch/arm/mach-shmobile/headsmp.S b/arch/arm/mach-shmobile/headsmp.S
index 32e0bf6e3ccb..f5e0d7c93cda 100644
--- a/arch/arm/mach-shmobile/headsmp.S
+++ b/arch/arm/mach-shmobile/headsmp.S
@@ -46,11 +46,10 @@ ENTRY(shmobile_smp_boot)
        and     r0, r1, #0xffffff               @ MPIDR_HWID_BITMASK
                                                @ r0 = cpu_logical_map() value
        mov     r1, #0                          @ r1 = CPU index
-       adr     r2, 1f
-       ldmia   r2, {r5, r6, r7}
-       add     r5, r5, r2                      @ array of per-cpu mpidr values
-       add     r6, r6, r2                      @ array of per-cpu functions
-       add     r7, r7, r2                      @ array of per-cpu arguments
+
+       adr_l   r5, shmobile_smp_mpidr          @ array of per-cpu mpidr values
+       adr_l   r6, shmobile_smp_fn             @ array of per-cpu functions
+       adr_l   r7, shmobile_smp_arg            @ array of per-cpu arguments
 
 shmobile_smp_boot_find_mpidr:
        ldr     r8, [r5, r1, lsl #2]
@@ -78,11 +77,6 @@ ENTRY(shmobile_smp_sleep)
        b       shmobile_smp_boot
 ENDPROC(shmobile_smp_sleep)
 
-       .align  2
-1:     .long   shmobile_smp_mpidr - .
-       .long   shmobile_smp_fn - 1b
-       .long   shmobile_smp_arg - 1b
-
        .bss
        .globl  shmobile_smp_mpidr
 shmobile_smp_mpidr:
-- 
2.11.0

Reply via email to