From: Xu Kuohai xukuohai@huawei.com
hulk inclusion category: bugfix bugzilla: 185909 https://gitee.com/openeuler/kernel/issues/I4DDEL
--------------------------------
The unwind directives can't handle nested function entries, so only the outermost function __loop_udelay is annotated, and the inner nested entries share the same unwind info with __loop_udelay.
Signed-off-by: Xu Kuohai xukuohai@huawei.com Reviewed-by: Yang Jihong yangjihong1@huawei.com Signed-off-by: Zheng Zengkai zhengzengkai@huawei.com --- arch/arm/lib/delay-loop.S | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/arch/arm/lib/delay-loop.S b/arch/arm/lib/delay-loop.S index 3ccade0f8130..f0a076f9abc5 100644 --- a/arch/arm/lib/delay-loop.S +++ b/arch/arm/lib/delay-loop.S @@ -7,6 +7,7 @@ #include <linux/linkage.h> #include <asm/assembler.h> #include <asm/delay.h> +#include <asm/unwind.h>
.text
@@ -21,6 +22,7 @@ */
ENTRY(__loop_udelay) +UNWIND(.fnstart) ldr r2, .LC1 mul r0, r2, r0 @ r0 = delay_us * UDELAY_MULT ENTRY(__loop_const_udelay) @ 0 <= r0 <= 0xfffffaf0 @@ -54,6 +56,7 @@ ENTRY(__loop_delay) #endif bhi __loop_delay ret lr -ENDPROC(__loop_udelay) -ENDPROC(__loop_const_udelay) ENDPROC(__loop_delay) +ENDPROC(__loop_const_udelay) +UNWIND(.fnend) +ENDPROC(__loop_udelay)