Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: 7125/1: Add unwinding annotations for 64bit division functions

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>

authored by

Laura Abbott and committed by
Russell King
01885bc5 4bdad983

+8
+8
arch/arm/lib/div64.S
··· 13 13 */ 14 14 15 15 #include <linux/linkage.h> 16 + #include <asm/unwind.h> 16 17 17 18 #ifdef __ARMEB__ 18 19 #define xh r0 ··· 45 44 */ 46 45 47 46 ENTRY(__do_div64) 47 + UNWIND(.fnstart) 48 48 49 49 @ Test for easy paths first. 50 50 subs ip, r4, #1 ··· 191 189 moveq yh, xh 192 190 moveq xh, #0 193 191 moveq pc, lr 192 + UNWIND(.fnend) 194 193 194 + UNWIND(.fnstart) 195 + UNWIND(.pad #4) 196 + UNWIND(.save {lr}) 197 + Ldiv0_64: 195 198 @ Division by 0: 196 199 str lr, [sp, #-8]! 197 200 bl __div0 ··· 207 200 mov xh, #0 208 201 ldr pc, [sp], #8 209 202 203 + UNWIND(.fnend) 210 204 ENDPROC(__do_div64)