summaryrefslogtreecommitdiff
path: root/hw
diff options
context:
space:
mode:
authorJason Gerecke <killertofu@gmail.com>2017-05-26 14:27:19 -0700
committerAdam Jackson <ajax@redhat.com>2017-09-25 15:34:10 -0400
commitd8f63717e05ae8d820ceae74216916ebd180441d (patch)
tree6206363b39ca519899bc2d215576f5039fcd8eb2 /hw
parent444929b446a0ef5873d6346c3f3091adb8fbe6bb (diff)
xfree86: Fix interpretation of xf86WaitForInput timeout
Commit aa6717ce2 switched xf86WaitForInput from using select(2) to using poll(2). Before this change, the timeout was interpreted as being in microseconds; afterwards it is fed directly to xorg_poll which interprets it as being in milliseconds. This results in the function potentially blocking 1000x longer than intended. This commit scales down the timeout argument before passing it to xorg_poll, being careful to ensure the result is not rounded down due to integer division. Signed-off-by: Jason Gerecke <jason.gerecke@wacom.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> (cherry picked from commit 2fbf62b2fb3dcb29551251d09aa695715bb754f4)
Diffstat (limited to 'hw')
-rw-r--r--hw/xfree86/os-support/shared/posix_tty.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/hw/xfree86/os-support/shared/posix_tty.c b/hw/xfree86/os-support/shared/posix_tty.c
index 6249a625c..a795ae19d 100644
--- a/hw/xfree86/os-support/shared/posix_tty.c
+++ b/hw/xfree86/os-support/shared/posix_tty.c
@@ -394,6 +394,9 @@ xf86WaitForInput(int fd, int timeout)
poll_fd.fd = fd;
poll_fd.events = POLLIN;
+ /* convert microseconds to milliseconds */
+ timeout = (timeout + 999) / 1000;
+
if (fd >= 0) {
SYSCALL(r = xserver_poll(&poll_fd, 1, timeout));
}