[PATCH 2/3] RFC: ARM: head: Save lr in r11 while setting up page tables

Linus Walleij linus.walleij at linaro.org
Fri Sep 4 04:19:48 EDT 2020


We might need to use lr as we want to be able to call
the debug print functions, so save lr to r11 and restore
lr from r11 in __create_page_tables.

Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
---
 arch/arm/kernel/head.S | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
index 2bfdf33aa74c..8b089c4c0d17 100644
--- a/arch/arm/kernel/head.S
+++ b/arch/arm/kernel/head.S
@@ -171,10 +171,11 @@ ENDPROC(stext)
  * r8 = phys_offset, r9 = cpuid, r10 = procinfo
  *
  * Returns:
- *  r0, r3, r5-r7 corrupted
+ *  r0, r3, r5-r7, r11 corrupted
  *  r4 = physical page table address
  */
 __create_page_tables:
+	mov	r11, lr				@ we need to be able to call prints
 	pgtbl	r4, r8				@ page table address
 
 	/*
@@ -350,6 +351,7 @@ __create_page_tables:
 #ifdef CONFIG_ARM_LPAE
 	sub	r4, r4, #0x1000		@ point to the PGD table
 #endif
+	mov	lr, r11
 	ret	lr
 ENDPROC(__create_page_tables)
 	.ltorg
-- 
2.26.2




More information about the linux-arm-kernel mailing list