53 lines
977 B
Diff
53 lines
977 B
Diff
*** ./select.c.bak Sun Apr 30 13:00:38 2000
|
|
--- /usr/src/linux/fs/select.c Mon May 1 18:00:15 2000
|
|
***************
|
|
*** 11,16 ****
|
|
--- 11,17 ----
|
|
*/
|
|
|
|
#include <linux/malloc.h>
|
|
+ #include <linux/vmalloc.h>
|
|
#include <linux/smp_lock.h>
|
|
#include <linux/poll.h>
|
|
#include <linux/file.h>
|
|
***************
|
|
*** 416,422 ****
|
|
}
|
|
|
|
size = nfds * sizeof(struct pollfd);
|
|
! fds = (struct pollfd *) kmalloc(size, GFP_KERNEL);
|
|
if (!fds)
|
|
goto out;
|
|
|
|
--- 417,426 ----
|
|
}
|
|
|
|
size = nfds * sizeof(struct pollfd);
|
|
! if (size > PAGE_SIZE)
|
|
! fds = (struct pollfd *) vmalloc(size);
|
|
! else
|
|
! fds = (struct pollfd *) kmalloc(size, GFP_KERNEL);
|
|
if (!fds)
|
|
goto out;
|
|
|
|
***************
|
|
*** 437,443 ****
|
|
err = -EINTR;
|
|
|
|
out_fds:
|
|
! kfree(fds);
|
|
out:
|
|
if (wait)
|
|
free_wait(wait_table);
|
|
--- 441,450 ----
|
|
err = -EINTR;
|
|
|
|
out_fds:
|
|
! if (size > PAGE_SIZE)
|
|
! vfree(fds);
|
|
! else
|
|
! kfree(fds);
|
|
out:
|
|
if (wait)
|
|
free_wait(wait_table);
|