summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorJamie Iles <jamie.iles@picochip.com>2010-01-06 10:50:08 +0100
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-01-08 17:14:21 +0100
commit092a4e957a835cbf6b2ec82a6a4d6ff06c0a362e (patch)
treec22d005f4268be3553029ae258a68d910e62c28e /arch
parentARM: add missing recvmmsg syscall number (diff)
downloadlinux-092a4e957a835cbf6b2ec82a6a4d6ff06c0a362e.tar.xz
linux-092a4e957a835cbf6b2ec82a6a4d6ff06c0a362e.zip
ARM: 5866/1: arm ptrace: use unsigned types for kernel pt_regs
Make registers unsigned for kernel space. This is important for example in the perf events where the PC is stored into a u64. We don't want it sign extended so make the regs unsigned to prevent casts throughout the kernel. Signed-off-by: Jamie Iles <jamie.iles@picochip.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/include/asm/ptrace.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/arm/include/asm/ptrace.h b/arch/arm/include/asm/ptrace.h
index bbecccda76d0..eec6e897ceb2 100644
--- a/arch/arm/include/asm/ptrace.h
+++ b/arch/arm/include/asm/ptrace.h
@@ -97,9 +97,15 @@
* stack during a system call. Note that sizeof(struct pt_regs)
* has to be a multiple of 8.
*/
+#ifndef __KERNEL__
struct pt_regs {
long uregs[18];
};
+#else /* __KERNEL__ */
+struct pt_regs {
+ unsigned long uregs[18];
+};
+#endif /* __KERNEL__ */
#define ARM_cpsr uregs[16]
#define ARM_pc uregs[15]