ARM: 7125/1: Add unwinding annotations for 64bit division functions
Laura Abbott [Thu, 6 Oct 2011 19:53:14 +0000 (20:53 +0100)]
The 64bit division functions never had unwinding annotations
added. This prevents a backtrace from being printed within
the function and if a division by 0 occurs. Add the annotations.

Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Acked-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>

arch/arm/lib/div64.S

index faa7748..e55c484 100644 (file)
@@ -13,6 +13,7 @@
  */
 
 #include <linux/linkage.h>
+#include <asm/unwind.h>
 
 #ifdef __ARMEB__
 #define xh r0
@@ -44,6 +45,7 @@
  */
 
 ENTRY(__do_div64)
+UNWIND(.fnstart)
 
        @ Test for easy paths first.
        subs    ip, r4, #1
@@ -189,7 +191,12 @@ ENTRY(__do_div64)
        moveq   yh, xh
        moveq   xh, #0
        moveq   pc, lr
+UNWIND(.fnend)
 
+UNWIND(.fnstart)
+UNWIND(.pad #4)
+UNWIND(.save {lr})
+Ldiv0_64:
        @ Division by 0:
        str     lr, [sp, #-8]!
        bl      __div0
@@ -200,4 +207,5 @@ ENTRY(__do_div64)
        mov     xh, #0
        ldr     pc, [sp], #8
 
+UNWIND(.fnend)
 ENDPROC(__do_div64)