sparc: Fix SA_ONSTACK signal handling.
authorDavid S. Miller <davem@davemloft.net>
Thu, 8 May 2008 01:54:05 +0000 (18:54 -0700)
committerDavid S. Miller <davem@davemloft.net>
Thu, 8 May 2008 01:54:05 +0000 (18:54 -0700)
commitdc5dc7e6d71ca9fd1ea01a1418150af3b2937489
tree0071bfb3de792bc28354bfc30f7dac12e69e139a
parent1e38c126c9252b612697e34f43b1b3371c8ee31d
sparc: Fix SA_ONSTACK signal handling.

We need to be more liberal about the alignment of the buffer given to
us by sigaltstack().  The user should not need to be mindful of all of
the alignment constraints we have for the stack frame.

This mirrors how we handle this situation in clone() as well.

Also, we align the stack even in non-SA_ONSTACK cases so that signals
due to bad stack alignment can be delivered properly.  This makes such
errors easier to debug and recover from.

Finally, add the sanity check x86 has to make sure we won't overflow
the signal stack.

This fixes glibc testcases nptl/tst-cancel20.c and
nptl/tst-cancelx20.c

Signed-off-by: David S. Miller <davem@davemloft.net>
arch/sparc/kernel/signal.c
arch/sparc64/kernel/signal.c
arch/sparc64/kernel/signal32.c