diff options
author | David S. Miller <davem@davemloft.net> | 2008-04-27 05:26:36 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-27 05:26:36 -0400 |
commit | 5526b7e4513c66bc1c91f661dcd518d5199f8934 (patch) | |
tree | 658de7d323dc5aa5c13d7c9545820b5911d758dc /arch/sparc/kernel/sys_sparc.c | |
parent | 7cf069955f2f0b95fed6a8b1a61ef598a3df0f4e (diff) |
sparc: Remove old style signal frame support.
Back around the same time we were bootstrapping the first 32-bit sparc
Linux kernel with a SunOS userland, we made the signal frame match
that of SunOS.
By the time we even started putting together a native Linux userland
for 32-bit Sparc we realized this layout wasn't sufficient for Linux's
needs.
Therefore we changed the layout, yet kept support for the old style
signal frame layout in there. The detection mechanism is that we had
sys_sigaction() start passing in a negative signal number to indicate
"new style signal frames please".
Anyways, no binaries exist in the world that use the old stuff. In
fact, I bet Jakub Jelinek and myself are the only two people who ever
had such binaries to be honest.
So let's get rid of this stuff.
I added an assertion using WARN_ON_ONCE() that makes sure 32-bit
applications are passing in that negative signal number still.
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/sys_sparc.c')
-rw-r--r-- | arch/sparc/kernel/sys_sparc.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/arch/sparc/kernel/sys_sparc.c b/arch/sparc/kernel/sys_sparc.c index 42bf09db9a81..f188b5dc9fd0 100644 --- a/arch/sparc/kernel/sys_sparc.c +++ b/arch/sparc/kernel/sys_sparc.c | |||
@@ -1,5 +1,4 @@ | |||
1 | /* $Id: sys_sparc.c,v 1.70 2001/04/14 01:12:02 davem Exp $ | 1 | /* linux/arch/sparc/kernel/sys_sparc.c |
2 | * linux/arch/sparc/kernel/sys_sparc.c | ||
3 | * | 2 | * |
4 | * This file contains various random system calls that | 3 | * This file contains various random system calls that |
5 | * have a non-standard calling sequence on the Linux/sparc | 4 | * have a non-standard calling sequence on the Linux/sparc |
@@ -395,10 +394,8 @@ sparc_sigaction (int sig, const struct old_sigaction __user *act, | |||
395 | struct k_sigaction new_ka, old_ka; | 394 | struct k_sigaction new_ka, old_ka; |
396 | int ret; | 395 | int ret; |
397 | 396 | ||
398 | if (sig < 0) { | 397 | WARN_ON_ONCE(sig >= 0); |
399 | current->thread.new_signal = 1; | 398 | sig = -sig; |
400 | sig = -sig; | ||
401 | } | ||
402 | 399 | ||
403 | if (act) { | 400 | if (act) { |
404 | unsigned long mask; | 401 | unsigned long mask; |
@@ -446,11 +443,6 @@ sys_rt_sigaction(int sig, | |||
446 | if (sigsetsize != sizeof(sigset_t)) | 443 | if (sigsetsize != sizeof(sigset_t)) |
447 | return -EINVAL; | 444 | return -EINVAL; |
448 | 445 | ||
449 | /* All tasks which use RT signals (effectively) use | ||
450 | * new style signals. | ||
451 | */ | ||
452 | current->thread.new_signal = 1; | ||
453 | |||
454 | if (act) { | 446 | if (act) { |
455 | new_ka.ka_restorer = restorer; | 447 | new_ka.ka_restorer = restorer; |
456 | if (copy_from_user(&new_ka.sa, act, sizeof(*act))) | 448 | if (copy_from_user(&new_ka.sa, act, sizeof(*act))) |