diff mbox series

[v2,05/13] armv8: layerscape: load function pointer using ADR

Message ID 20200601195336.3237-6-michael@walle.cc
State Accepted
Commit 2eca7b97046e96e5cde4431b6635e0b4173b3e40
Headers show
Series armv8: layerscape: spin table relocation fixes and cleanups | expand

Commit Message

Michael Walle June 1, 2020, 7:53 p.m. UTC
Don't use LDR to load a pointer to a function. This will generate a
literal which cannot be relocated. Use ADR which is PC-relative and
therefore can easily be relocated.

Signed-off-by: Michael Walle <michael at walle.cc>
---
 arch/arm/cpu/armv8/fsl-layerscape/spintable.S | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/arch/arm/cpu/armv8/fsl-layerscape/spintable.S b/arch/arm/cpu/armv8/fsl-layerscape/spintable.S
index d71ec13eaf..ac9c622aee 100644
--- a/arch/arm/cpu/armv8/fsl-layerscape/spintable.S
+++ b/arch/arm/cpu/armv8/fsl-layerscape/spintable.S
@@ -57,11 +57,11 @@  ENTRY(secondary_boot_func)
 	 * table (each elem is padded to 64 bytes)
 	 */
 	lsl	x1, x10, #6
-	ldr	x0, =__spin_table
+	adr	x0, __spin_table
 	/* physical address of this cpus spin table element */
 	add	x11, x1, x0
 
-	ldr	x0, =__real_cntfrq
+	adr	x0, __real_cntfrq
 	ldr	x0, [x0]
 	msr	cntfrq_el0, x0	/* set with real frequency */
 	str	x9, [x11, #16]	/* LPID */
@@ -117,7 +117,7 @@  ENTRY(secondary_switch_to_el1)
 	orr	x10, x2, x1, lsl #2	/* x10 has LPID */
 
 	lsl	x1, x10, #6
-	ldr	x0, =__spin_table
+	adr	x0, __spin_table
 	/* physical address of this cpus spin table element */
 	add	x11, x1, x0