|
@@ -314,7 +314,7 @@ static int core_sys_select(int n, fd_set __user *inp, fd_set __user *outp,
|
|
|
int ret, size, max_fdset;
|
|
|
struct fdtable *fdt;
|
|
|
/* Allocate small arguments on the stack to save memory and be faster */
|
|
|
- char stack_fds[SELECT_STACK_ALLOC];
|
|
|
+ long stack_fds[SELECT_STACK_ALLOC/sizeof(long)];
|
|
|
|
|
|
ret = -EINVAL;
|
|
|
if (n < 0)
|
|
@@ -639,8 +639,10 @@ int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds, s64 *timeout)
|
|
|
struct poll_list *walk;
|
|
|
struct fdtable *fdt;
|
|
|
int max_fdset;
|
|
|
- /* Allocate small arguments on the stack to save memory and be faster */
|
|
|
- char stack_pps[POLL_STACK_ALLOC];
|
|
|
+ /* Allocate small arguments on the stack to save memory and be
|
|
|
+ faster - use long to make sure the buffer is aligned properly
|
|
|
+ on 64 bit archs to avoid unaligned access */
|
|
|
+ long stack_pps[POLL_STACK_ALLOC/sizeof(long)];
|
|
|
struct poll_list *stack_pp = NULL;
|
|
|
|
|
|
/* Do a sanity check on nfds ... */
|