arm64: head.S: avoid open-coded adr_l
authorMark Rutland <mark.rutland@arm.com>
Tue, 17 Jan 2017 16:10:56 +0000 (16:10 +0000)
committerWill Deacon <will.deacon@arm.com>
Tue, 17 Jan 2017 17:41:02 +0000 (17:41 +0000)
Some places in the kernel open-code sequences using ADRP for a symbol
another instruction using a :lo12: relocation for that same symbol.
These sequences are easy to get wrong, and more painful to read than is
necessary. For these reasons, it is preferable to use the
{adr,ldr,str}_l macros for these cases.

This patch makes use of adr_l these in head.S, removing an open-coded
sequence using adrp.

Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Marc Zyngier <marc.zyngier@arm.com>
Cc: Will Deacon <will.deacon@arm.com>
Signed-off-by: Will Deacon <will.deacon@arm.com>
arch/arm64/kernel/head.S

index 9b0857a89a2a7c7e72d6a5338ea9d13dc9394461..d3b8f92de5c59f7eb83c3b1c9835036a978999ea 100644 (file)
@@ -613,8 +613,7 @@ CPU_LE(     movk    x0, #0x30d0, lsl #16    )       // Clear EE and E0E on LE systems
 
 install_el2_stub:
        /* Hypervisor stub */
-       adrp    x0, __hyp_stub_vectors
-       add     x0, x0, #:lo12:__hyp_stub_vectors
+       adr_l   x0, __hyp_stub_vectors
        msr     vbar_el2, x0
 
        /* spsr */