summaryrefslogtreecommitdiff
path: root/arch/arm/lib/memcpy.S
diff options
context:
space:
mode:
authorLin Yongting <linyongting@gmail.com>2014-11-26 13:38:33 (GMT)
committerRussell King <rmk+kernel@arm.linux.org.uk>2014-11-27 16:00:25 (GMT)
commit279f487e0b471577e2b3c134e2ff9af939129d0f (patch)
tree6c772b214b5110c695a2774a5785489bc5c6cfc9 /arch/arm/lib/memcpy.S
parent207a6cb06990c298d0eac982e053d370e216d93d (diff)
downloadlinux-279f487e0b471577e2b3c134e2ff9af939129d0f.tar.xz
ARM: 8225/1: Add unwinding support for memory copy functions
The memory copy functions(memcpy, __copy_from_user, __copy_to_user) never had unwinding annotations added. Currently, when accessing invalid pointer by these functions occurs the backtrace shown will stop at these functions or some completely unrelated function. Add unwinding annotations in hopes of getting a more useful backtrace in following cases: 1. die on accessing invalid pointer by these functions 2. kprobe trapped at any instruction within these functions 3. interrupted at any instruction within these functions Signed-off-by: Lin Yongting <linyongting@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch/arm/lib/memcpy.S')
-rw-r--r--arch/arm/lib/memcpy.S5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/arm/lib/memcpy.S b/arch/arm/lib/memcpy.S
index a9b9e22..7797e81 100644
--- a/arch/arm/lib/memcpy.S
+++ b/arch/arm/lib/memcpy.S
@@ -12,6 +12,7 @@
#include <linux/linkage.h>
#include <asm/assembler.h>
+#include <asm/unwind.h>
#define LDR1W_SHIFT 0
#define STR1W_SHIFT 0
@@ -48,6 +49,10 @@
stmdb sp!, {r0, \reg1, \reg2}
.endm
+ .macro usave reg1 reg2
+ UNWIND( .save {r0, \reg1, \reg2} )
+ .endm
+
.macro exit reg1 reg2
ldmfd sp!, {r0, \reg1, \reg2}
.endm