From c39aea24c99cb375d06e48f533ebe245d73abd73 Mon Sep 17 00:00:00 2001 From: Philipp Tomsich Date: Mon, 18 Sep 2017 11:40:10 +0200 Subject: arm: mark save_boot_params_ret as a function As no '.type' was set for save_boot_params_ret in start.S, binutils did not track whether it was emitted as A32 or T32. By properly marking save_boot_params_ret as a potential function entry, we can make sure that the compiler will insert the appropriate instructions for branching to save_boot_params_ret both for call-sites emitted as A32 and T32. Reported-by: Andy Yan Signed-off-by: Philipp Tomsich Tested-by: Andy Yan Series-changes: 3 - tracked the root-cause why no interwork branch was emitted and fixed it using a '.type'-directive in start.S to mark save_boot_params_ret as a (possible) function-entry. --- arch/arm/cpu/armv7/start.S | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/arm/cpu/armv7/start.S b/arch/arm/cpu/armv7/start.S index 7b84a7a0f1..95a0b5224b 100644 --- a/arch/arm/cpu/armv7/start.S +++ b/arch/arm/cpu/armv7/start.S @@ -31,6 +31,7 @@ .globl reset .globl save_boot_params_ret + .type save_boot_params_ret,%function #ifdef CONFIG_ARMV7_LPAE .global switch_to_hypervisor_ret #endif -- cgit v1.2.3