ARM: head-common.S: use PC-relative insn sequence for idmap creation
[linux-2.6-microblaze.git] / arch / arm / kernel / head.S
index 7e3f368..f5a636f 100644 (file)
@@ -224,11 +224,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
 
@@ -351,11 +348,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