[patch] sys_epoll_wait() timeout saga ...

From: Davide Libenzi
Date: Fri Sep 23 2005 - 13:11:27 EST



The sys_epoll_wait() function was not handling correctly negative timeouts (besides -1), and like sys_poll(), was comparing millisec to secs in testing the upper timeout limit.


Signed-off-by: Davide Libenzi <davidel@xxxxxxxxxxxxxxx>


- Davide --- a/fs/eventpoll.c 2005-09-23 10:56:57.000000000 -0700
+++ b/fs/eventpoll.c 2005-09-23 11:00:06.000000000 -0700
@@ -1507,7 +1507,7 @@
* and the overflow condition. The passed timeout is in milliseconds,
* that why (t * HZ) / 1000.
*/
- jtimeout = timeout == -1 || timeout > (MAX_SCHEDULE_TIMEOUT - 1000) / HZ ?
+ jtimeout = timeout < 0 || (timeout / 1000) >= (MAX_SCHEDULE_TIMEOUT / HZ) ?
MAX_SCHEDULE_TIMEOUT: (timeout * HZ + 999) / 1000;

retry: