]> git.neil.brown.name Git - history.git/commit
[PATCH] ppc64: fix signal handler arguments
authorPaul Mackerras <paulus@samba.org>
Fri, 17 Dec 2004 01:19:44 +0000 (17:19 -0800)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Fri, 17 Dec 2004 01:19:44 +0000 (17:19 -0800)
commitb832c33597ae7acc7448614e305733aa98713b82
treee534a6cbbbfc8d682547fe8b3dfe0f450c8c513c
parentf6febf2cea83c61140b3a40b7771c0024792a6e7
[PATCH] ppc64: fix signal handler arguments

This is the first of 3 patches from David Woodhouse which fix various
problems with signal handling on ppc64.  (This is David's patch plus a
couple of comment fixes from me.)

Without this patch, a signal handler that is called as a result of delivery
of a signal while a process is waiting in sigsuspend() will have wrong
values given to it for the second and third arguments.  The reason is that
we were returning to userspace via the syscall return path, which doesn't
bother to restore r4 and r5.  This patch arranges for the return to
userspace to be done via ret_from_except in this case, which restores all
registers.

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