summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2018-05-14 09:49:00 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2018-05-15 10:35:38 +1000
commit9f3a6ac97e9d3f13cdfb38e54fbce92452025830 (patch)
tree6361cdd5f84c84abacdc41b359c703bca77f61e0
parent59eb0c372b615fce5039e69b5067adc0efe5b64b (diff)
eventcomm: if we get a read error other than EAGAIN, remove the fd
Otherwise poll() keeps on triggering on our fd until udev gets around to notifying the server that the device is in some state of deadness. Meanwhile, the input thread is busy filling the log up with "Read error" messages. Great way to test file systems and their capacity to handle out of space scenarios but otherwise a bit pointless. Those FS developers should write their own tests instead of relying on the synaptics driver! Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Adam Jackson <ajax@redhat.com>
-rw-r--r--src/eventcomm.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/eventcomm.c b/src/eventcomm.c
index f65d532..3d0c5b0 100644
--- a/src/eventcomm.c
+++ b/src/eventcomm.c
@@ -557,6 +557,7 @@ SynapticsReadEvent(InputInfoPtr pInfo, struct input_event *ev)
if (rc != -EAGAIN) {
LogMessageVerbSigSafe(X_ERROR, 0, "%s: Read error %d\n", pInfo->name,
errno);
+ xf86RemoveEnabledDevice(pInfo);
} else if (proto_data->read_flag == LIBEVDEV_READ_FLAG_SYNC) {
proto_data->read_flag = LIBEVDEV_READ_FLAG_NORMAL;
return SynapticsReadEvent(pInfo, ev);