ARM: proc-v7: fix out-of-range adr instruction
PATCH 1/1 ARM: proc-v7: fix out-of-range adr instruction
From: Arnd Bergmann <[email protected]>
Before the change to CONFIG_ARCH_MULTIPLATFORM, some CONFIG_ARM_ERRATA_* options were always hidden, but now they are user visible in expert configurations, which caused a compile-time failure in randconfig builds with all of the errata enabled.
arch/arm/mm/proc-v7.S:545: Error: invalid constant (fffffffffffffbf4) after fixup /tmp/proc-v7-5b364b.s:1611:2: error: out of range pc-relative fixup value
adr r3, v7_crval
The problem is that the extra code size puts the v7_crval definition just outside of the range of the 'adr' instruction. Use the adr_l macro instead to allow longer offsets.
Fixes 84fc86360623 ("ARM: make ARCH_MULTIPLATFORM user-visible")
Suggested-by Ard Biesheuvel <[email protected]>
Signed-off-by Arnd Bergmann <[email protected]>
--- arch/arm/mm/proc-v7.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/mm/proc-v7.S +1 -1
@@ -544,7 +544,7 @@ __errata_finish: mcr p14, 6, r0, c0, c0, 0 @ stop userspace TEEHBR access 1: #endif - adr r3, v7_crval + adr_l r3, v7_crval ldmia r3, {r3, r6} ARM_BE8(orr r6, r6, #1 << 25) @ big-endian page tables #ifdef CONFIG_SWP_EMULATE
Signature · 1 line
2.39.0