From ba0a86ca606572359913c5cccd1f89f91548f4b1 Mon Sep 17 00:00:00 2001 From: Augustin Cavalier Date: Wed, 20 Jul 2022 16:37:23 -0400 Subject: [PATCH] input/mouse: Fetch the real ioctl error code from errno. Should fix #17841. --- .../input_server/devices/mouse/MouseInputDevice.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp b/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp index 39a1b66c0b..a926355754 100644 --- a/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp +++ b/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp @@ -427,13 +427,14 @@ MouseDevice::_ControlThread() read.timeout = touchpadEventTimeout; status_t status = ioctl(fDevice, MS_READ_TOUCHPAD, &read, sizeof(read)); + if (status < 0) + status = errno; if (status != B_OK && status != B_TIMED_OUT) { - LOG_ERR("Mouse device exiting, %s\n", strerror(errno)); + LOG_ERR("Mouse (touchpad) device exiting, %s\n", strerror(errno)); _ControlThreadCleanup(); // TOAST! return; - } - if (status == B_TIMED_OUT) { + } else if (status == B_TIMED_OUT) { read.event = MS_READ_TOUCHPAD; read.u.touchpad = lastTouchpadMovement; }