diff options
Diffstat (limited to 'fs/select.c')
-rw-r--r-- | fs/select.c | 8 |
1 files changed, 1 insertions, 7 deletions
diff --git a/fs/select.c b/fs/select.c index 33b72ba0f86f..dcbc1112b7ec 100644 --- a/fs/select.c +++ b/fs/select.c | |||
@@ -658,8 +658,6 @@ int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds, s64 *timeout) | |||
658 | unsigned int i; | 658 | unsigned int i; |
659 | struct poll_list *head; | 659 | struct poll_list *head; |
660 | struct poll_list *walk; | 660 | struct poll_list *walk; |
661 | struct fdtable *fdt; | ||
662 | int max_fdset; | ||
663 | /* Allocate small arguments on the stack to save memory and be | 661 | /* Allocate small arguments on the stack to save memory and be |
664 | faster - use long to make sure the buffer is aligned properly | 662 | faster - use long to make sure the buffer is aligned properly |
665 | on 64 bit archs to avoid unaligned access */ | 663 | on 64 bit archs to avoid unaligned access */ |
@@ -667,11 +665,7 @@ int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds, s64 *timeout) | |||
667 | struct poll_list *stack_pp = NULL; | 665 | struct poll_list *stack_pp = NULL; |
668 | 666 | ||
669 | /* Do a sanity check on nfds ... */ | 667 | /* Do a sanity check on nfds ... */ |
670 | rcu_read_lock(); | 668 | if (nfds > current->signal->rlim[RLIMIT_NOFILE].rlim_cur) |
671 | fdt = files_fdtable(current->files); | ||
672 | max_fdset = fdt->max_fdset; | ||
673 | rcu_read_unlock(); | ||
674 | if (nfds > max_fdset && nfds > OPEN_MAX) | ||
675 | return -EINVAL; | 669 | return -EINVAL; |
676 | 670 | ||
677 | poll_initwait(&table); | 671 | poll_initwait(&table); |