[PATCH] ppc64: fix 32-bit signal frame back link
authorPaul Mackerras <paulus@samba.org>
Sat, 30 Apr 2005 17:01:40 +0000 (10:01 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Sat, 30 Apr 2005 17:01:40 +0000 (10:01 -0700)
commit9747dd6fa98f2983f4dd09cd6dad1fa3d2a4c5f2
treef8e191827f6ff913d083a89028b1b732ef56b231
parenta6ad57fb4b5e9d68553f4440377b99f75588fa88
[PATCH] ppc64: fix 32-bit signal frame back link

When the kernel creates a signal frame on the user stack, it puts the
old stack pointer value at the beginning so that the signal frame is
linked into the chain of stack frames like any other frame.
Unfortunately, for 32-bit processes we are writing the old stack
pointer as a 64-bit value rather than a 32-bit value, and the process
sees that as a null pointer, since it only looks at the first 32 bits,
which are zero since ppc is bigendian and the stack pointer is below
4GB.  This bug is in SLES9 and RHEL4 too, hence the ccs.

This patch fixes the bug by making the signal code write the old stack
pointer as a u32 instead of an unsigned long.

Signed-off-by: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/ppc64/kernel/signal32.c