diff options
Diffstat (limited to 'fs/select.c')
-rw-r--r-- | fs/select.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/select.c b/fs/select.c index 51ceec292f2f..53a0c149f528 100644 --- a/fs/select.c +++ b/fs/select.c | |||
@@ -961,7 +961,7 @@ static int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds, | |||
961 | struct timespec64 *end_time) | 961 | struct timespec64 *end_time) |
962 | { | 962 | { |
963 | struct poll_wqueues table; | 963 | struct poll_wqueues table; |
964 | int err = -EFAULT, fdcount, len, size; | 964 | int err = -EFAULT, fdcount, len; |
965 | /* Allocate small arguments on the stack to save memory and be | 965 | /* Allocate small arguments on the stack to save memory and be |
966 | faster - use long to make sure the buffer is aligned properly | 966 | faster - use long to make sure the buffer is aligned properly |
967 | on 64 bit archs to avoid unaligned access */ | 967 | on 64 bit archs to avoid unaligned access */ |
@@ -989,8 +989,8 @@ static int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds, | |||
989 | break; | 989 | break; |
990 | 990 | ||
991 | len = min(todo, POLLFD_PER_PAGE); | 991 | len = min(todo, POLLFD_PER_PAGE); |
992 | size = sizeof(struct poll_list) + sizeof(struct pollfd) * len; | 992 | walk = walk->next = kmalloc(struct_size(walk, entries, len), |
993 | walk = walk->next = kmalloc(size, GFP_KERNEL); | 993 | GFP_KERNEL); |
994 | if (!walk) { | 994 | if (!walk) { |
995 | err = -ENOMEM; | 995 | err = -ENOMEM; |
996 | goto out_fds; | 996 | goto out_fds; |