[ARM] 3102/1: ARM EABI: stack pointer must be 64-bit aligned after a CPU exception
authorNicolas Pitre <nico@cam.org>
Sat, 14 Jan 2006 16:18:08 +0000 (16:18 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 14 Jan 2006 16:18:08 +0000 (16:18 +0000)
commit2dede2d8e925f4c2cb4e136b14df127685e15dd3
tree271b3fb300c5ac143556295d10c6736430ebed85
parentda2b1cd61903c8e9796e76be2d606584f26a78e5
[ARM] 3102/1: ARM EABI: stack pointer must be 64-bit aligned after a CPU exception

Patch from Nicolas Pitre

The ARM EABI says that the stack pointer has to be 64-bit aligned for
reasons already mentioned in patch #3101 when calling C functions.

We therefore must verify and adjust sp accordingly when taking an
exception from kernel mode since sp might not necessarily be 64-bit
aligned if the exception occurs in the middle of a kernel function.

If the exception occurs while in user mode then no sp fixup is needed as
long as sizeof(struct pt_regs) as well as any additional syscall data
stack space remain multiples of 8.

Signed-off-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
arch/arm/kernel/entry-armv.S
arch/arm/kernel/entry-header.S
include/asm-arm/ptrace.h