Replace the open coded arithmetic with a simple adr_l/sub pair. This
removes some open coded arithmetic involving virtual addresses, avoids
literal pools on v7+, and slightly reduces the footprint of the code.
Reviewed-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
 #endif
 
 #ifndef CONFIG_XIP_KERNEL
-       adr     r3, 2f
-       ldmia   r3, {r4, r8}
-       sub     r4, r3, r4                      @ (PHYS_OFFSET - PAGE_OFFSET)
-       add     r8, r8, r4                      @ PHYS_OFFSET
+       adr_l   r8, _text                       @ __pa(_text)
+       sub     r8, r8, #TEXT_OFFSET            @ PHYS_OFFSET
 #else
        ldr     r8, =PLAT_PHYS_OFFSET           @ always constant in this case
 #endif
 1:     b       __enable_mmu
 ENDPROC(stext)
        .ltorg
-#ifndef CONFIG_XIP_KERNEL
-2:     .long   .
-       .long   PAGE_OFFSET
-#endif
 
 /*
  * Setup the initial page tables.  We only setup the barest