Commit 5526b7e4 authored by David S. Miller's avatar David S. Miller

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: default avatarDavid S. Miller <davem@davemloft.net>
parent 7cf06995
...@@ -357,8 +357,6 @@ void flush_thread(void) ...@@ -357,8 +357,6 @@ void flush_thread(void)
{ {
current_thread_info()->w_saved = 0; current_thread_info()->w_saved = 0;
/* No new signal delivery by default */
current->thread.new_signal = 0;
#ifndef CONFIG_SMP #ifndef CONFIG_SMP
if(last_task_used_math == current) { if(last_task_used_math == current) {
#else #else
......
This diff is collapsed.
/* $Id: sys_sparc.c,v 1.70 2001/04/14 01:12:02 davem Exp $ /* linux/arch/sparc/kernel/sys_sparc.c
* linux/arch/sparc/kernel/sys_sparc.c
* *
* This file contains various random system calls that * This file contains various random system calls that
* have a non-standard calling sequence on the Linux/sparc * 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,10 +394,8 @@ sparc_sigaction (int sig, const struct old_sigaction __user *act,
struct k_sigaction new_ka, old_ka; struct k_sigaction new_ka, old_ka;
int ret; int ret;
if (sig < 0) { WARN_ON_ONCE(sig >= 0);
current->thread.new_signal = 1;
sig = -sig; sig = -sig;
}
if (act) { if (act) {
unsigned long mask; unsigned long mask;
...@@ -446,11 +443,6 @@ sys_rt_sigaction(int sig, ...@@ -446,11 +443,6 @@ sys_rt_sigaction(int sig,
if (sigsetsize != sizeof(sigset_t)) if (sigsetsize != sizeof(sigset_t))
return -EINVAL; return -EINVAL;
/* All tasks which use RT signals (effectively) use
* new style signals.
*/
current->thread.new_signal = 1;
if (act) { if (act) {
new_ka.ka_restorer = restorer; new_ka.ka_restorer = restorer;
if (copy_from_user(&new_ka.sa, act, sizeof(*act))) if (copy_from_user(&new_ka.sa, act, sizeof(*act)))
......
/* $Id: process.c,v 1.131 2002/02/09 19:49:30 davem Exp $ /* arch/sparc64/kernel/process.c
* arch/sparc64/kernel/process.c
* *
* Copyright (C) 1995, 1996 David S. Miller (davem@caip.rutgers.edu) * Copyright (C) 1995, 1996 David S. Miller (davem@caip.rutgers.edu)
* Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be) * Copyright (C) 1996 Eddie C. Dost (ecd@skynet.be)
...@@ -368,9 +367,6 @@ void flush_thread(void) ...@@ -368,9 +367,6 @@ void flush_thread(void)
if (get_thread_current_ds() != ASI_AIUS) if (get_thread_current_ds() != ASI_AIUS)
set_fs(USER_DS); set_fs(USER_DS);
/* Init new signal delivery disposition. */
clear_thread_flag(TIF_NEWSIGNALS);
} }
/* It's a bit more tricky when 64-bit tasks are involved... */ /* It's a bit more tricky when 64-bit tasks are involved... */
......
This diff is collapsed.
...@@ -554,10 +554,8 @@ asmlinkage long compat_sys_sigaction(int sig, struct old_sigaction32 __user *act ...@@ -554,10 +554,8 @@ asmlinkage long compat_sys_sigaction(int sig, struct old_sigaction32 __user *act
struct k_sigaction new_ka, old_ka; struct k_sigaction new_ka, old_ka;
int ret; int ret;
if (sig < 0) { WARN_ON_ONCE(sig >= 0);
set_thread_flag(TIF_NEWSIGNALS);
sig = -sig; sig = -sig;
}
if (act) { if (act) {
compat_old_sigset_t mask; compat_old_sigset_t mask;
...@@ -601,11 +599,6 @@ asmlinkage long compat_sys_rt_sigaction(int sig, ...@@ -601,11 +599,6 @@ asmlinkage long compat_sys_rt_sigaction(int sig,
if (sigsetsize != sizeof(compat_sigset_t)) if (sigsetsize != sizeof(compat_sigset_t))
return -EINVAL; return -EINVAL;
/* All tasks which use RT signals (effectively) use
* new style signals.
*/
set_thread_flag(TIF_NEWSIGNALS);
if (act) { if (act) {
u32 u_handler, u_restorer; u32 u_handler, u_restorer;
......
/* $Id: processor.h,v 1.83 2001/10/08 09:32:13 davem Exp $ /* include/asm-sparc/processor.h
* include/asm-sparc/processor.h
* *
* Copyright (C) 1994 David S. Miller (davem@caip.rutgers.edu) * Copyright (C) 1994 David S. Miller (davem@caip.rutgers.edu)
*/ */
...@@ -65,7 +64,6 @@ struct thread_struct { ...@@ -65,7 +64,6 @@ struct thread_struct {
struct fpq fpqueue[16]; struct fpq fpqueue[16];
unsigned long flags; unsigned long flags;
mm_segment_t current_ds; mm_segment_t current_ds;
int new_signal;
}; };
#define SPARC_FLAG_KTHREAD 0x1 /* task is a kernel thread */ #define SPARC_FLAG_KTHREAD 0x1 /* task is a kernel thread */
......
/* $Id: thread_info.h,v 1.1 2002/02/10 00:00:58 davem Exp $ /* thread_info.h: sparc64 low-level thread information
* thread_info.h: sparc64 low-level thread information
* *
* Copyright (C) 2002 David S. Miller (davem@redhat.com) * Copyright (C) 2002 David S. Miller (davem@redhat.com)
*/ */
...@@ -223,7 +222,7 @@ register struct thread_info *current_thread_info_reg asm("g6"); ...@@ -223,7 +222,7 @@ register struct thread_info *current_thread_info_reg asm("g6");
#define TIF_NEED_RESCHED 3 /* rescheduling necessary */ #define TIF_NEED_RESCHED 3 /* rescheduling necessary */
#define TIF_PERFCTR 4 /* performance counters active */ #define TIF_PERFCTR 4 /* performance counters active */
#define TIF_UNALIGNED 5 /* allowed to do unaligned accesses */ #define TIF_UNALIGNED 5 /* allowed to do unaligned accesses */
#define TIF_NEWSIGNALS 6 /* wants new-style signals */ /* flag bit 6 is available */
#define TIF_32BIT 7 /* 32-bit binary */ #define TIF_32BIT 7 /* 32-bit binary */
/* flag bit 8 is available */ /* flag bit 8 is available */
#define TIF_SECCOMP 9 /* secure computing */ #define TIF_SECCOMP 9 /* secure computing */
...@@ -242,7 +241,6 @@ register struct thread_info *current_thread_info_reg asm("g6"); ...@@ -242,7 +241,6 @@ register struct thread_info *current_thread_info_reg asm("g6");
#define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED) #define _TIF_NEED_RESCHED (1<<TIF_NEED_RESCHED)
#define _TIF_PERFCTR (1<<TIF_PERFCTR) #define _TIF_PERFCTR (1<<TIF_PERFCTR)
#define _TIF_UNALIGNED (1<<TIF_UNALIGNED) #define _TIF_UNALIGNED (1<<TIF_UNALIGNED)
#define _TIF_NEWSIGNALS (1<<TIF_NEWSIGNALS)
#define _TIF_32BIT (1<<TIF_32BIT) #define _TIF_32BIT (1<<TIF_32BIT)
#define _TIF_SECCOMP (1<<TIF_SECCOMP) #define _TIF_SECCOMP (1<<TIF_SECCOMP)
#define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT) #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment