From: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This patch (which has been in my tree for some time now) does 2 things to
the ppc32 signal code:
- The new sys_swapcontext() syscall that we added recently (and which is
_not_ yet used by glibc, so it's ok to change it slightly at this point,
glibc kernel version check will limit us to 2.6.2 or 2.6.3) gets a new
context size argument, so we can deal with future context size changes.
- When ucontext is get/set/swapped using the above syscall, the TLS (r2)
is preserved (it's still saved/restored on signal entry & return though).
The equivalent of this patch is already in the ppc64 signal32.c emulation,
and it has no effect until glibc is updated to use the new syscall, which
should happen soon now, so please apply.