Replace the open coded PC relative offset calculations with a pair
of adr_l invocations.

Signed-off-by: Ard Biesheuvel <ard.biesheu...@linaro.org>
---
 arch/arm/kernel/head.S | 12 ++----------
 1 file changed, 2 insertions(+), 10 deletions(-)

diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index 04286fd9e09c..0a98aec0e39d 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -227,11 +227,8 @@ __create_page_tables:
         * Create identity mapping to cater for __enable_mmu.
         * This identity mapping will be removed by paging_init().
         */
-       adr     r0, __turn_mmu_on_loc
-       ldmia   r0, {r3, r5, r6}
-       sub     r0, r0, r3                      @ virt->phys offset
-       add     r5, r5, r0                      @ phys __turn_mmu_on
-       add     r6, r6, r0                      @ phys __turn_mmu_on_end
+       adr_l   r5, __turn_mmu_on               @ _pa(__turn_mmu_on)
+       adr_l   r6, __turn_mmu_on_end           @ _pa(__turn_mmu_on_end)
        mov     r5, r5, lsr #SECTION_SHIFT
        mov     r6, r6, lsr #SECTION_SHIFT
 
@@ -354,11 +351,6 @@ __create_page_tables:
        ret     lr
 ENDPROC(__create_page_tables)
        .ltorg
-       .align
-__turn_mmu_on_loc:
-       .long   .
-       .long   __turn_mmu_on
-       .long   __turn_mmu_on_end
 
 #if defined(CONFIG_SMP)
        .text
-- 
2.11.0

Reply via email to