ARM: 8175/1: Use current_stack_pointer to calculate pt_regs address
authorBehan Webster <behanw@converseincode.com>
Fri, 26 Sep 2014 23:31:06 +0000 (00:31 +0100)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Thu, 13 Nov 2014 23:58:07 +0000 (23:58 +0000)
Use the global current_stack_pointer to calculate the end of the stack for
current_pt_regs()

Signed-off-by: Behan Webster <behanw@converseincode.com>
Reviewed-by: Mark Charlebois <charlebm@gmail.com>
Reviewed-by: Jan-Simon Möller <dl9pf@gmx.de>
Acked-by: Will Deacon <will.deacon@arm.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/include/asm/ptrace.h

index 601264d983fa4034db151abdb165b3920f9cc109..51622ba7c4a66a91494ecc49be4520fd4b14df88 100644 (file)
@@ -154,9 +154,8 @@ static inline unsigned long user_stack_pointer(struct pt_regs *regs)
        return regs->ARM_sp;
 }
 
-#define current_pt_regs(void) ({                               \
-       register unsigned long sp asm ("sp");                   \
-       (struct pt_regs *)((sp | (THREAD_SIZE - 1)) - 7) - 1;   \
+#define current_pt_regs(void) ({ (struct pt_regs *)                    \
+               ((current_stack_pointer | (THREAD_SIZE - 1)) - 7) - 1;  \
 })
 
 #endif /* __ASSEMBLY__ */