diff options
Diffstat (limited to 'kernel/signal.c')
| -rw-r--r-- | kernel/signal.c | 9 | 
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 17afcaf582d..1a006b5d9d9 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -160,7 +160,7 @@ void recalc_sigpending(void)  #define SYNCHRONOUS_MASK \  	(sigmask(SIGSEGV) | sigmask(SIGBUS) | sigmask(SIGILL) | \ -	 sigmask(SIGTRAP) | sigmask(SIGFPE)) +	 sigmask(SIGTRAP) | sigmask(SIGFPE) | sigmask(SIGSYS))  int next_signal(struct sigpending *pending, sigset_t *mask)  { @@ -2706,6 +2706,13 @@ int copy_siginfo_to_user(siginfo_t __user *to, siginfo_t *from)  		err |= __put_user(from->si_uid, &to->si_uid);  		err |= __put_user(from->si_ptr, &to->si_ptr);  		break; +#ifdef __ARCH_SIGSYS +	case __SI_SYS: +		err |= __put_user(from->si_call_addr, &to->si_call_addr); +		err |= __put_user(from->si_syscall, &to->si_syscall); +		err |= __put_user(from->si_arch, &to->si_arch); +		break; +#endif  	default: /* this is just in case for now ... */  		err |= __put_user(from->si_pid, &to->si_pid);  		err |= __put_user(from->si_uid, &to->si_uid);  |