diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-06-01 14:53:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-06-01 14:53:44 -0400 |
commit | 86c47b70f62a7072d441ba212aab33c2f82627c2 (patch) | |
tree | d03988bd2226966352bb7f3c2e82ff545353d2c4 /fs | |
parent | 1193755ac6328ad240ba987e6ec41d5e8baf0680 (diff) | |
parent | 44fbbb3dc687c9709a6f2236197316e5c79ab1eb (diff) |
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal
Pull third pile of signal handling patches from Al Viro:
"This time it's mostly helpers and conversions to them; there's a lot
of stuff remaining in the tree, but that'll either go in -rc2
(isolated bug fixes, ideally via arch maintainers' trees) or will sit
there until the next cycle."
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal:
x86: get rid of calling do_notify_resume() when returning to kernel mode
blackfin: check __get_user() return value
whack-a-mole with TIF_FREEZE
FRV: Optimise the system call exit path in entry.S [ver #2]
FRV: Shrink TIF_WORK_MASK [ver #2]
FRV: Prevent syscall exit tracing and notify_resume at end of kernel exceptions
new helper: signal_delivered()
powerpc: get rid of restore_sigmask()
most of set_current_blocked() callers want SIGKILL/SIGSTOP removed from set
set_restore_sigmask() is never called without SIGPENDING (and never should be)
TIF_RESTORE_SIGMASK can be set only when TIF_SIGPENDING is set
don't call try_to_freeze() from do_signal()
pull clearing RESTORE_SIGMASK into block_sigmask()
sh64: failure to build sigframe != signal without handler
openrisc: tracehook_signal_handler() is supposed to be called on success
new helper: sigmask_to_save()
new helper: restore_saved_sigmask()
new helpers: {clear,test,test_and_clear}_restore_sigmask()
HAVE_RESTORE_SIGMASK is defined on all architectures now
Diffstat (limited to 'fs')
-rw-r--r-- | fs/compat.c | 4 | ||||
-rw-r--r-- | fs/eventpoll.c | 4 | ||||
-rw-r--r-- | fs/select.c | 4 |
3 files changed, 0 insertions, 12 deletions
diff --git a/fs/compat.c b/fs/compat.c index 3004d2bad13f..6161255fac45 100644 --- a/fs/compat.c +++ b/fs/compat.c | |||
@@ -1542,7 +1542,6 @@ asmlinkage long compat_sys_old_select(struct compat_sel_arg_struct __user *arg) | |||
1542 | compat_ptr(a.exp), compat_ptr(a.tvp)); | 1542 | compat_ptr(a.exp), compat_ptr(a.tvp)); |
1543 | } | 1543 | } |
1544 | 1544 | ||
1545 | #ifdef HAVE_SET_RESTORE_SIGMASK | ||
1546 | static long do_compat_pselect(int n, compat_ulong_t __user *inp, | 1545 | static long do_compat_pselect(int n, compat_ulong_t __user *inp, |
1547 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, | 1546 | compat_ulong_t __user *outp, compat_ulong_t __user *exp, |
1548 | struct compat_timespec __user *tsp, compat_sigset_t __user *sigmask, | 1547 | struct compat_timespec __user *tsp, compat_sigset_t __user *sigmask, |
@@ -1665,11 +1664,9 @@ asmlinkage long compat_sys_ppoll(struct pollfd __user *ufds, | |||
1665 | 1664 | ||
1666 | return ret; | 1665 | return ret; |
1667 | } | 1666 | } |
1668 | #endif /* HAVE_SET_RESTORE_SIGMASK */ | ||
1669 | 1667 | ||
1670 | #ifdef CONFIG_EPOLL | 1668 | #ifdef CONFIG_EPOLL |
1671 | 1669 | ||
1672 | #ifdef HAVE_SET_RESTORE_SIGMASK | ||
1673 | asmlinkage long compat_sys_epoll_pwait(int epfd, | 1670 | asmlinkage long compat_sys_epoll_pwait(int epfd, |
1674 | struct compat_epoll_event __user *events, | 1671 | struct compat_epoll_event __user *events, |
1675 | int maxevents, int timeout, | 1672 | int maxevents, int timeout, |
@@ -1713,7 +1710,6 @@ asmlinkage long compat_sys_epoll_pwait(int epfd, | |||
1713 | 1710 | ||
1714 | return err; | 1711 | return err; |
1715 | } | 1712 | } |
1716 | #endif /* HAVE_SET_RESTORE_SIGMASK */ | ||
1717 | 1713 | ||
1718 | #endif /* CONFIG_EPOLL */ | 1714 | #endif /* CONFIG_EPOLL */ |
1719 | 1715 | ||
diff --git a/fs/eventpoll.c b/fs/eventpoll.c index 079d1be65ba9..74598f67efeb 100644 --- a/fs/eventpoll.c +++ b/fs/eventpoll.c | |||
@@ -1853,8 +1853,6 @@ error_return: | |||
1853 | return error; | 1853 | return error; |
1854 | } | 1854 | } |
1855 | 1855 | ||
1856 | #ifdef HAVE_SET_RESTORE_SIGMASK | ||
1857 | |||
1858 | /* | 1856 | /* |
1859 | * Implement the event wait interface for the eventpoll file. It is the kernel | 1857 | * Implement the event wait interface for the eventpoll file. It is the kernel |
1860 | * part of the user space epoll_pwait(2). | 1858 | * part of the user space epoll_pwait(2). |
@@ -1899,8 +1897,6 @@ SYSCALL_DEFINE6(epoll_pwait, int, epfd, struct epoll_event __user *, events, | |||
1899 | return error; | 1897 | return error; |
1900 | } | 1898 | } |
1901 | 1899 | ||
1902 | #endif /* HAVE_SET_RESTORE_SIGMASK */ | ||
1903 | |||
1904 | static int __init eventpoll_init(void) | 1900 | static int __init eventpoll_init(void) |
1905 | { | 1901 | { |
1906 | struct sysinfo si; | 1902 | struct sysinfo si; |
diff --git a/fs/select.c b/fs/select.c index 17d33d09fc16..bae321569dfa 100644 --- a/fs/select.c +++ b/fs/select.c | |||
@@ -614,7 +614,6 @@ SYSCALL_DEFINE5(select, int, n, fd_set __user *, inp, fd_set __user *, outp, | |||
614 | return ret; | 614 | return ret; |
615 | } | 615 | } |
616 | 616 | ||
617 | #ifdef HAVE_SET_RESTORE_SIGMASK | ||
618 | static long do_pselect(int n, fd_set __user *inp, fd_set __user *outp, | 617 | static long do_pselect(int n, fd_set __user *inp, fd_set __user *outp, |
619 | fd_set __user *exp, struct timespec __user *tsp, | 618 | fd_set __user *exp, struct timespec __user *tsp, |
620 | const sigset_t __user *sigmask, size_t sigsetsize) | 619 | const sigset_t __user *sigmask, size_t sigsetsize) |
@@ -686,7 +685,6 @@ SYSCALL_DEFINE6(pselect6, int, n, fd_set __user *, inp, fd_set __user *, outp, | |||
686 | 685 | ||
687 | return do_pselect(n, inp, outp, exp, tsp, up, sigsetsize); | 686 | return do_pselect(n, inp, outp, exp, tsp, up, sigsetsize); |
688 | } | 687 | } |
689 | #endif /* HAVE_SET_RESTORE_SIGMASK */ | ||
690 | 688 | ||
691 | #ifdef __ARCH_WANT_SYS_OLD_SELECT | 689 | #ifdef __ARCH_WANT_SYS_OLD_SELECT |
692 | struct sel_arg_struct { | 690 | struct sel_arg_struct { |
@@ -941,7 +939,6 @@ SYSCALL_DEFINE3(poll, struct pollfd __user *, ufds, unsigned int, nfds, | |||
941 | return ret; | 939 | return ret; |
942 | } | 940 | } |
943 | 941 | ||
944 | #ifdef HAVE_SET_RESTORE_SIGMASK | ||
945 | SYSCALL_DEFINE5(ppoll, struct pollfd __user *, ufds, unsigned int, nfds, | 942 | SYSCALL_DEFINE5(ppoll, struct pollfd __user *, ufds, unsigned int, nfds, |
946 | struct timespec __user *, tsp, const sigset_t __user *, sigmask, | 943 | struct timespec __user *, tsp, const sigset_t __user *, sigmask, |
947 | size_t, sigsetsize) | 944 | size_t, sigsetsize) |
@@ -992,4 +989,3 @@ SYSCALL_DEFINE5(ppoll, struct pollfd __user *, ufds, unsigned int, nfds, | |||
992 | 989 | ||
993 | return ret; | 990 | return ret; |
994 | } | 991 | } |
995 | #endif /* HAVE_SET_RESTORE_SIGMASK */ | ||