diff options
Diffstat (limited to 'fs/select.c')
| -rw-r--r-- | fs/select.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/fs/select.c b/fs/select.c index 73715e90030f..500a669f7790 100644 --- a/fs/select.c +++ b/fs/select.c | |||
| @@ -691,6 +691,23 @@ SYSCALL_DEFINE6(pselect6, int, n, fd_set __user *, inp, fd_set __user *, outp, | |||
| 691 | } | 691 | } |
| 692 | #endif /* HAVE_SET_RESTORE_SIGMASK */ | 692 | #endif /* HAVE_SET_RESTORE_SIGMASK */ |
| 693 | 693 | ||
| 694 | #ifdef __ARCH_WANT_SYS_OLD_SELECT | ||
| 695 | struct sel_arg_struct { | ||
| 696 | unsigned long n; | ||
| 697 | fd_set __user *inp, *outp, *exp; | ||
| 698 | struct timeval __user *tvp; | ||
| 699 | }; | ||
| 700 | |||
| 701 | SYSCALL_DEFINE1(old_select, struct sel_arg_struct __user *, arg) | ||
| 702 | { | ||
| 703 | struct sel_arg_struct a; | ||
| 704 | |||
| 705 | if (copy_from_user(&a, arg, sizeof(a))) | ||
| 706 | return -EFAULT; | ||
| 707 | return sys_select(a.n, a.inp, a.outp, a.exp, a.tvp); | ||
| 708 | } | ||
| 709 | #endif | ||
| 710 | |||
| 694 | struct poll_list { | 711 | struct poll_list { |
| 695 | struct poll_list *next; | 712 | struct poll_list *next; |
| 696 | int len; | 713 | int len; |
