3150 poll times out immediately in 32bit kernels
Reviewed by: Eric Schrock <
[email protected]>
Reviewed by: Garrett D'Amore <
[email protected]>
Reviewed by: Gordon Ross <
[email protected]>
Approved by: Robert Mustacchi <
[email protected]>
--- a/usr/src/uts/common/syscall/poll.c Sun Sep 16 13:48:36 2012 +0100
+++ b/usr/src/uts/common/syscall/poll.c Tue Oct 02 05:18:23 2012 +0100
@@ -308,7 +308,7 @@
deadline = 0;
} else {
/* They must wait at least a tick. */
- deadline = tsp->tv_sec * NANOSEC + tsp->tv_nsec;
+ deadline = ((hrtime_t)tsp->tv_sec * NANOSEC) + tsp->tv_nsec;
deadline = MAX(deadline, nsec_per_tick);
deadline += gethrtime();
}